/*
	Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
	Available via Academic Free License >= 2.1 OR the modified BSD license.
	see: http://dojotoolkit.org/license for details
*/

/*
	This is an optimized version of Dojo, built for deployment and not for
	development. To get sources and documentation, please visit:

		http://dojotoolkit.org
*/

if (!dojo._hasResource["dojo.dnd.common"]) {
    dojo._hasResource["dojo.dnd.common"] = true;
    dojo.provide("dojo.dnd.common");
    dojo.getObject("dnd", true, dojo);
    dojo.dnd.getCopyKeyState = dojo.isCopyKey;
    dojo.dnd._uniqueId = 0;
    dojo.dnd.getUniqueId = function() {
        var id;
        do {
            id = dojo._scopeName + "Unique" + (++dojo.dnd._uniqueId);
        } while (dojo.byId(id));return id;
    }
    ;
    dojo.dnd._empty = {};
    dojo.dnd.isFormElement = function(e) {
        var t = e.target;
        if (t.nodeType == 3) {
            t = t.parentNode;
        }
        return " button textarea input select option ".indexOf(" " + t.tagName.toLowerCase() + " ") >= 0;
    }
    ;
}
if (!dojo._hasResource["dojo.window"]) {
    dojo._hasResource["dojo.window"] = true;
    dojo.provide("dojo.window");
    dojo.getObject("window", true, dojo);
    dojo.window.getBox = function() {
        var _1 = (dojo.doc.compatMode == "BackCompat") ? dojo.body() : dojo.doc.documentElement;
        var _2 = dojo._docScroll();
        return {
            w: _1.clientWidth,
            h: _1.clientHeight,
            l: _2.x,
            t: _2.y
        };
    }
    ;
    dojo.window.get = function(_3) {
        if (dojo.isIE && window !== document.parentWindow) {
            _3.parentWindow.execScript("document._parentWindow = window;", "Javascript");
            var _4 = _3._parentWindow;
            _3._parentWindow = null ;
            return _4;
        }
        return _3.parentWindow || _3.defaultView;
    }
    ;
    dojo.window.scrollIntoView = function(_5, _6) {
        try {
            _5 = dojo.byId(_5);
            var _7 = _5.ownerDocument || dojo.doc
              , _8 = _7.body || dojo.body()
              , _9 = _7.documentElement || _8.parentNode
              , _a = dojo.isIE
              , _b = dojo.isWebKit;
            if ((!(dojo.isMoz || _a || _b || dojo.isOpera) || _5 == _8 || _5 == _9) && (typeof _5.scrollIntoView != "undefined")) {
                _5.scrollIntoView(false);
                return;
            }
            var _c = _7.compatMode == "BackCompat"
              , _d = (_a >= 9 && _5.ownerDocument.parentWindow.frameElement) ? ((_9.clientHeight > 0 && _9.clientWidth > 0 && (_8.clientHeight == 0 || _8.clientWidth == 0 || _8.clientHeight > _9.clientHeight || _8.clientWidth > _9.clientWidth)) ? _9 : _8) : (_c ? _8 : _9)
              , _e = _b ? _8 : _d
              , _f = _d.clientWidth
              , _10 = _d.clientHeight
              , rtl = !dojo._isBodyLtr()
              , _11 = _6 || dojo.position(_5)
              , el = _5.parentNode
              , _12 = function(el) {
                return ( (_a <= 6 || (_a && _c)) ? false : (dojo.style(el, "position").toLowerCase() == "fixed")) ;
            }
            ;
            if (_12(_5)) {
                return;
            }
            while (el) {
                if (el == _8) {
                    el = _e;
                }
                var _13 = dojo.position(el)
                  , _14 = _12(el);
                if (el == _e) {
                    _13.w = _f;
                    _13.h = _10;
                    if (_e == _9 && _a && rtl) {
                        _13.x += _e.offsetWidth - _13.w;
                    }
                    if (_13.x < 0 || !_a) {
                        _13.x = 0;
                    }
                    if (_13.y < 0 || !_a) {
                        _13.y = 0;
                    }
                } else {
                    var pb = dojo._getPadBorderExtents(el);
                    _13.w -= pb.w;
                    _13.h -= pb.h;
                    _13.x += pb.l;
                    _13.y += pb.t;
                    var _15 = el.clientWidth
                      , _16 = _13.w - _15;
                    if (_15 > 0 && _16 > 0) {
                        _13.w = _15;
                        _13.x += (rtl && (_a || el.clientLeft > pb.l)) ? _16 : 0;
                    }
                    _15 = el.clientHeight;
                    _16 = _13.h - _15;
                    if (_15 > 0 && _16 > 0) {
                        _13.h = _15;
                    }
                }
                if (_14) {
                    if (_13.y < 0) {
                        _13.h += _13.y;
                        _13.y = 0;
                    }
                    if (_13.x < 0) {
                        _13.w += _13.x;
                        _13.x = 0;
                    }
                    if (_13.y + _13.h > _10) {
                        _13.h = _10 - _13.y;
                    }
                    if (_13.x + _13.w > _f) {
                        _13.w = _f - _13.x;
                    }
                }
                var l = _11.x - _13.x
                  , t = _11.y - Math.max(_13.y, 0)
                  , r = l + _11.w - _13.w
                  , bot = t + _11.h - _13.h;
                if (r * l > 0) {
                    var s = Math[l < 0 ? "max" : "min"](l, r);
                    if (rtl && ((_a == 8 && !_c) || _a >= 9)) {
                        s = -s;
                    }
                    _11.x += el.scrollLeft;
                    el.scrollLeft += s;
                    _11.x -= el.scrollLeft;
                }
                if (bot * t > 0) {
                    _11.y += el.scrollTop;
                    el.scrollTop += Math[t < 0 ? "max" : "min"](t, bot);
                    _11.y -= el.scrollTop;
                }
                el = (el != _e) && !_14 && el.parentNode;
            }
        } catch (error) {
            console.error("scrollIntoView: " + error);
            _5.scrollIntoView(false);
        }
    }
    ;
}
if (!dojo._hasResource["dojo.dnd.autoscroll"]) {
    dojo._hasResource["dojo.dnd.autoscroll"] = true;
    dojo.provide("dojo.dnd.autoscroll");
    dojo.getObject("dnd", true, dojo);
    dojo.dnd.getViewport = dojo.window.getBox;
    dojo.dnd.V_TRIGGER_AUTOSCROLL = 32;
    dojo.dnd.H_TRIGGER_AUTOSCROLL = 32;
    dojo.dnd.V_AUTOSCROLL_VALUE = 16;
    dojo.dnd.H_AUTOSCROLL_VALUE = 16;
    dojo.dnd.autoScroll = function(e) {
        var v = dojo.window.getBox()
          , dx = 0
          , dy = 0;
        if (e.clientX < dojo.dnd.H_TRIGGER_AUTOSCROLL) {
            dx = -dojo.dnd.H_AUTOSCROLL_VALUE;
        } else {
            if (e.clientX > v.w - dojo.dnd.H_TRIGGER_AUTOSCROLL) {
                dx = dojo.dnd.H_AUTOSCROLL_VALUE;
            }
        }
        if (e.clientY < dojo.dnd.V_TRIGGER_AUTOSCROLL) {
            dy = -dojo.dnd.V_AUTOSCROLL_VALUE;
        } else {
            if (e.clientY > v.h - dojo.dnd.V_TRIGGER_AUTOSCROLL) {
                dy = dojo.dnd.V_AUTOSCROLL_VALUE;
            }
        }
        window.scrollBy(dx, dy);
    }
    ;
    dojo.dnd._validNodes = {
        "div": 1,
        "p": 1,
        "td": 1
    };
    dojo.dnd._validOverflow = {
        "auto": 1,
        "scroll": 1
    };
    dojo.dnd.autoScrollNodes = function(e) {
        for (var n = e.target; n; ) {
            if (n.nodeType == 1 && (n.tagName.toLowerCase() in dojo.dnd._validNodes)) {
                var s = dojo.getComputedStyle(n);
                if (s.overflow.toLowerCase() in dojo.dnd._validOverflow) {
                    var b = dojo._getContentBox(n, s)
                      , t = dojo.position(n, true);
                    var w = Math.min(dojo.dnd.H_TRIGGER_AUTOSCROLL, b.w / 2)
                      , h = Math.min(dojo.dnd.V_TRIGGER_AUTOSCROLL, b.h / 2)
                      , rx = e.pageX - t.x
                      , ry = e.pageY - t.y
                      , dx = 0
                      , dy = 0;
                    if (dojo.isWebKit || dojo.isOpera) {
                        rx += dojo.body().scrollLeft;
                        ry += dojo.body().scrollTop;
                    }
                    if (rx > 0 && rx < b.w) {
                        if (rx < w) {
                            dx = -w;
                        } else {
                            if (rx > b.w - w) {
                                dx = w;
                            }
                        }
                    }
                    if (ry > 0 && ry < b.h) {
                        if (ry < h) {
                            dy = -h;
                        } else {
                            if (ry > b.h - h) {
                                dy = h;
                            }
                        }
                    }
                    var _17 = n.scrollLeft
                      , _18 = n.scrollTop;
                    n.scrollLeft = n.scrollLeft + dx;
                    n.scrollTop = n.scrollTop + dy;
                    if (_17 != n.scrollLeft || _18 != n.scrollTop) {
                        return;
                    }
                }
            }
            try {
                n = n.parentNode;
            } catch (x) {
                n = null ;
            }
        }
        dojo.dnd.autoScroll(e);
    }
    ;
}
if (!dojo._hasResource["dojo.dnd.Mover"]) {
    dojo._hasResource["dojo.dnd.Mover"] = true;
    dojo.provide("dojo.dnd.Mover");
    dojo.declare("dojo.dnd.Mover", null , {
        constructor: function(_19, e, _1a) {
            this.node = dojo.byId(_19);
            var pos = e.touches ? e.touches[0] : e;
            this.marginBox = {
                l: pos.pageX,
                t: pos.pageY
            };
            this.mouseButton = e.button;
            var h = (this.host = _1a)
              , d = _19.ownerDocument;
            this.events = [dojo.connect(d, "onmousemove", this, "onFirstMove"), dojo.connect(d, "ontouchmove", this, "onFirstMove"), dojo.connect(d, "onmousemove", this, "onMouseMove"), dojo.connect(d, "ontouchmove", this, "onMouseMove"), dojo.connect(d, "onmouseup", this, "onMouseUp"), dojo.connect(d, "ontouchend", this, "onMouseUp"), dojo.connect(d, "ondragstart", dojo.stopEvent), dojo.connect(d.body, "onselectstart", dojo.stopEvent)];
            if (h && h.onMoveStart) {
                h.onMoveStart(this);
            }
        },
        onMouseMove: function(e) {
            dojo.dnd.autoScroll(e);
            var m = this.marginBox
              , pos = e.touches ? e.touches[0] : e;
            this.host.onMove(this, {
                l: m.l + pos.pageX,
                t: m.t + pos.pageY
            }, e);
            dojo.stopEvent(e);
        },
        onMouseUp: function(e) {
            if (dojo.isWebKit && dojo.isMac && this.mouseButton == 2 ? e.button == 0 : this.mouseButton == e.button) {
                this.destroy();
            }
            dojo.stopEvent(e);
        },
        onFirstMove: function(e) {
            var s = this.node.style, l, t, h = this.host;
            switch (s.position) {
            case "relative":
            case "absolute":
                l = Math.round(parseFloat(s.left)) || 0;
                t = Math.round(parseFloat(s.top)) || 0;
                break;
            default:
                s.position = "absolute";
                var m = dojo.marginBox(this.node);
                var b = dojo.doc.body;
                var bs = dojo.getComputedStyle(b);
                var bm = dojo._getMarginBox(b, bs);
                var bc = dojo._getContentBox(b, bs);
                l = m.l - (bc.l - bm.l);
                t = m.t - (bc.t - bm.t);
                break;
            }
            this.marginBox.l = l - this.marginBox.l;
            this.marginBox.t = t - this.marginBox.t;
            if (h && h.onFirstMove) {
                h.onFirstMove(this, e);
            }
            dojo.disconnect(this.events.shift());
            dojo.disconnect(this.events.shift());
        },
        destroy: function() {
            dojo.forEach(this.events, dojo.disconnect);
            var h = this.host;
            if (h && h.onMoveStop) {
                h.onMoveStop(this);
            }
            this.events = this.node = this.host = null ;
        }
    });
}
if (!dojo._hasResource["dojo.dnd.Moveable"]) {
    dojo._hasResource["dojo.dnd.Moveable"] = true;
    dojo.provide("dojo.dnd.Moveable");
    dojo.declare("dojo.dnd.Moveable", null , {
        handle: "",
        delay: 0,
        skip: false,
        constructor: function(_1b, _1c) {
            this.node = dojo.byId(_1b);
            if (!_1c) {
                _1c = {};
            }
            this.handle = _1c.handle ? dojo.byId(_1c.handle) : null ;
            if (!this.handle) {
                this.handle = this.node;
            }
            this.delay = _1c.delay > 0 ? _1c.delay : 0;
            this.skip = _1c.skip;
            this.mover = _1c.mover ? _1c.mover : dojo.dnd.Mover;
            this.events = [dojo.connect(this.handle, "onmousedown", this, "onMouseDown"), dojo.connect(this.handle, "ontouchstart", this, "onMouseDown"), dojo.connect(this.handle, "ondragstart", this, "onSelectStart"), dojo.connect(this.handle, "onselectstart", this, "onSelectStart")];
        },
        markupFactory: function(_1d, _1e) {
            return new dojo.dnd.Moveable(_1e,_1d);
        },
        destroy: function() {
            dojo.forEach(this.events, dojo.disconnect);
            this.events = this.node = this.handle = null ;
        },
        onMouseDown: function(e) {
            if (this.skip && dojo.dnd.isFormElement(e)) {
                return;
            }
            if (this.delay) {
                this.events.push(dojo.connect(this.handle, "onmousemove", this, "onMouseMove"), dojo.connect(this.handle, "ontouchmove", this, "onMouseMove"), dojo.connect(this.handle, "onmouseup", this, "onMouseUp"), dojo.connect(this.handle, "ontouchend", this, "onMouseUp"));
                var pos = e.touches ? e.touches[0] : e;
                this._lastX = pos.pageX;
                this._lastY = pos.pageY;
            } else {
                this.onDragDetected(e);
            }
            dojo.stopEvent(e);
        },
        onMouseMove: function(e) {
            var pos = e.touches ? e.touches[0] : e;
            if (Math.abs(pos.pageX - this._lastX) > this.delay || Math.abs(pos.pageY - this._lastY) > this.delay) {
                this.onMouseUp(e);
                this.onDragDetected(e);
            }
            dojo.stopEvent(e);
        },
        onMouseUp: function(e) {
            for (var i = 0; i < 2; ++i) {
                dojo.disconnect(this.events.pop());
            }
            dojo.stopEvent(e);
        },
        onSelectStart: function(e) {
            if (!this.skip || !dojo.dnd.isFormElement(e)) {
                dojo.stopEvent(e);
            }
        },
        onDragDetected: function(e) {
            new this.mover(this.node,e,this);
        },
        onMoveStart: function(_1f) {
            dojo.publish("/dnd/move/start", [_1f]);
            dojo.addClass(dojo.body(), "dojoMove");
            dojo.addClass(this.node, "dojoMoveItem");
        },
        onMoveStop: function(_20) {
            dojo.publish("/dnd/move/stop", [_20]);
            dojo.removeClass(dojo.body(), "dojoMove");
            dojo.removeClass(this.node, "dojoMoveItem");
        },
        onFirstMove: function(_21, e) {},
        onMove: function(_22, _23, e) {
            this.onMoving(_22, _23);
            var s = _22.node.style;
            s.left = _23.l + "px";
            s.top = _23.t + "px";
            this.onMoved(_22, _23);
        },
        onMoving: function(_24, _25) {},
        onMoved: function(_26, _27) {}
    });
}
if (!dojo._hasResource["dojo.dnd.move"]) {
    dojo._hasResource["dojo.dnd.move"] = true;
    dojo.provide("dojo.dnd.move");
    dojo.declare("dojo.dnd.move.constrainedMoveable", dojo.dnd.Moveable, {
        constraints: function() {},
        within: false,
        markupFactory: function(_28, _29) {
            return new dojo.dnd.move.constrainedMoveable(_29,_28);
        },
        constructor: function(_2a, _2b) {
            if (!_2b) {
                _2b = {};
            }
            this.constraints = _2b.constraints;
            this.within = _2b.within;
        },
        onFirstMove: function(_2c) {
            var c = this.constraintBox = this.constraints.call(this, _2c);
            c.r = c.l + c.w;
            c.b = c.t + c.h;
            if (this.within) {
                var mb = dojo._getMarginSize(_2c.node);
                c.r -= mb.w;
                c.b -= mb.h;
            }
        },
        onMove: function(_2d, _2e) {
            var c = this.constraintBox
              , s = _2d.node.style;
            this.onMoving(_2d, _2e);
            _2e.l = _2e.l < c.l ? c.l : c.r < _2e.l ? c.r : _2e.l;
            _2e.t = _2e.t < c.t ? c.t : c.b < _2e.t ? c.b : _2e.t;
            s.left = _2e.l + "px";
            s.top = _2e.t + "px";
            this.onMoved(_2d, _2e);
        }
    });
    dojo.declare("dojo.dnd.move.boxConstrainedMoveable", dojo.dnd.move.constrainedMoveable, {
        box: {},
        markupFactory: function(_2f, _30) {
            return new dojo.dnd.move.boxConstrainedMoveable(_30,_2f);
        },
        constructor: function(_31, _32) {
            var box = _32 && _32.box;
            this.constraints = function() {
                return box;
            }
            ;
        }
    });
    dojo.declare("dojo.dnd.move.parentConstrainedMoveable", dojo.dnd.move.constrainedMoveable, {
        area: "content",
        markupFactory: function(_33, _34) {
            return new dojo.dnd.move.parentConstrainedMoveable(_34,_33);
        },
        constructor: function(_35, _36) {
            var _37 = _36 && _36.area;
            this.constraints = function() {
                var n = this.node.parentNode
                  , s = dojo.getComputedStyle(n)
                  , mb = dojo._getMarginBox(n, s);
                if (_37 == "margin") {
                    return mb;
                }
                var t = dojo._getMarginExtents(n, s);
                mb.l += t.l,
                mb.t += t.t,
                mb.w -= t.w,
                mb.h -= t.h;
                if (_37 == "border") {
                    return mb;
                }
                t = dojo._getBorderExtents(n, s);
                mb.l += t.l,
                mb.t += t.t,
                mb.w -= t.w,
                mb.h -= t.h;
                if (_37 == "padding") {
                    return mb;
                }
                t = dojo._getPadExtents(n, s);
                mb.l += t.l,
                mb.t += t.t,
                mb.w -= t.w,
                mb.h -= t.h;
                return mb;
            }
            ;
        }
    });
    dojo.dnd.constrainedMover = dojo.dnd.move.constrainedMover;
    dojo.dnd.boxConstrainedMover = dojo.dnd.move.boxConstrainedMover;
    dojo.dnd.parentConstrainedMover = dojo.dnd.move.parentConstrainedMover;
}
if (!dojo._hasResource["dojo.dnd.TimedMoveable"]) {
    dojo._hasResource["dojo.dnd.TimedMoveable"] = true;
    dojo.provide("dojo.dnd.TimedMoveable");
    (function() {
        var _38 = dojo.dnd.Moveable.prototype.onMove;
        dojo.declare("dojo.dnd.TimedMoveable", dojo.dnd.Moveable, {
            timeout: 40,
            constructor: function(_39, _3a) {
                if (!_3a) {
                    _3a = {};
                }
                if (_3a.timeout && typeof _3a.timeout == "number" && _3a.timeout >= 0) {
                    this.timeout = _3a.timeout;
                }
            },
            markupFactory: function(_3b, _3c) {
                return new dojo.dnd.TimedMoveable(_3c,_3b);
            },
            onMoveStop: function(_3d) {
                if (_3d._timer) {
                    clearTimeout(_3d._timer);
                    _38.call(this, _3d, _3d._leftTop);
                }
                dojo.dnd.Moveable.prototype.onMoveStop.apply(this, arguments);
            },
            onMove: function(_3e, _3f) {
                _3e._leftTop = _3f;
                if (!_3e._timer) {
                    var _40 = this;
                    _3e._timer = setTimeout(function() {
                        _3e._timer = null ;
                        _38.call(_40, _3e, _3e._leftTop);
                    }, this.timeout);
                }
            }
        });
    })();
}
if (!dojo._hasResource["dojo.fx.Toggler"]) {
    dojo._hasResource["dojo.fx.Toggler"] = true;
    dojo.provide("dojo.fx.Toggler");
    dojo.declare("dojo.fx.Toggler", null , {
        node: null ,
        showFunc: dojo.fadeIn,
        hideFunc: dojo.fadeOut,
        showDuration: 200,
        hideDuration: 200,
        constructor: function(_41) {
            var _42 = this;
            dojo.mixin(_42, _41);
            _42.node = _41.node;
            _42._showArgs = dojo.mixin({}, _41);
            _42._showArgs.node = _42.node;
            _42._showArgs.duration = _42.showDuration;
            _42.showAnim = _42.showFunc(_42._showArgs);
            _42._hideArgs = dojo.mixin({}, _41);
            _42._hideArgs.node = _42.node;
            _42._hideArgs.duration = _42.hideDuration;
            _42.hideAnim = _42.hideFunc(_42._hideArgs);
            dojo.connect(_42.showAnim, "beforeBegin", dojo.hitch(_42.hideAnim, "stop", true));
            dojo.connect(_42.hideAnim, "beforeBegin", dojo.hitch(_42.showAnim, "stop", true));
        },
        show: function(_43) {
            return this.showAnim.play(_43 || 0);
        },
        hide: function(_44) {
            return this.hideAnim.play(_44 || 0);
        }
    });
}
if (!dojo._hasResource["dojo.fx"]) {
    dojo._hasResource["dojo.fx"] = true;
    dojo.provide("dojo.fx");
    (function() {
        var d = dojo
          , _45 = {
            _fire: function(evt, _46) {
                if (this[evt]) {
                    this[evt].apply(this, _46 || []);
                }
                return this;
            }
        };
        var _47 = function(_48) {
            this._index = -1;
            this._animations = _48 || [];
            this._current = this._onAnimateCtx = this._onEndCtx = null ;
            this.duration = 0;
            d.forEach(this._animations, function(a) {
                this.duration += a.duration;
                if (a.delay) {
                    this.duration += a.delay;
                }
            }, this);
        }
        ;
        d.extend(_47, {
            _onAnimate: function() {
                this._fire("onAnimate", arguments);
            },
            _onEnd: function() {
                d.disconnect(this._onAnimateCtx);
                d.disconnect(this._onEndCtx);
                this._onAnimateCtx = this._onEndCtx = null ;
                if (this._index + 1 == this._animations.length) {
                    this._fire("onEnd");
                } else {
                    this._current = this._animations[++this._index];
                    this._onAnimateCtx = d.connect(this._current, "onAnimate", this, "_onAnimate");
                    this._onEndCtx = d.connect(this._current, "onEnd", this, "_onEnd");
                    this._current.play(0, true);
                }
            },
            play: function(_49, _4a) {
                if (!this._current) {
                    this._current = this._animations[this._index = 0];
                }
                if (!_4a && this._current.status() == "playing") {
                    return this;
                }
                var _4b = d.connect(this._current, "beforeBegin", this, function() {
                    this._fire("beforeBegin");
                })
                  , _4c = d.connect(this._current, "onBegin", this, function(arg) {
                    this._fire("onBegin", arguments);
                })
                  , _4d = d.connect(this._current, "onPlay", this, function(arg) {
                    this._fire("onPlay", arguments);
                    d.disconnect(_4b);
                    d.disconnect(_4c);
                    d.disconnect(_4d);
                });
                if (this._onAnimateCtx) {
                    d.disconnect(this._onAnimateCtx);
                }
                this._onAnimateCtx = d.connect(this._current, "onAnimate", this, "_onAnimate");
                if (this._onEndCtx) {
                    d.disconnect(this._onEndCtx);
                }
                this._onEndCtx = d.connect(this._current, "onEnd", this, "_onEnd");
                this._current.play.apply(this._current, arguments);
                return this;
            },
            pause: function() {
                if (this._current) {
                    var e = d.connect(this._current, "onPause", this, function(arg) {
                        this._fire("onPause", arguments);
                        d.disconnect(e);
                    });
                    this._current.pause();
                }
                return this;
            },
            gotoPercent: function(_4e, _4f) {
                this.pause();
                var _50 = this.duration * _4e;
                this._current = null ;
                d.some(this._animations, function(a) {
                    if (a.duration <= _50) {
                        this._current = a;
                        return true;
                    }
                    _50 -= a.duration;
                    return false;
                });
                if (this._current) {
                    this._current.gotoPercent(_50 / this._current.duration, _4f);
                }
                return this;
            },
            stop: function(_51) {
                if (this._current) {
                    if (_51) {
                        for (; this._index + 1 < this._animations.length; ++this._index) {
                            this._animations[this._index].stop(true);
                        }
                        this._current = this._animations[this._index];
                    }
                    var e = d.connect(this._current, "onStop", this, function(arg) {
                        this._fire("onStop", arguments);
                        d.disconnect(e);
                    });
                    this._current.stop();
                }
                return this;
            },
            status: function() {
                return this._current ? this._current.status() : "stopped";
            },
            destroy: function() {
                if (this._onAnimateCtx) {
                    d.disconnect(this._onAnimateCtx);
                }
                if (this._onEndCtx) {
                    d.disconnect(this._onEndCtx);
                }
            }
        });
        d.extend(_47, _45);
        dojo.fx.chain = function(_52) {
            return new _47(_52);
        }
        ;
        var _53 = function(_54) {
            this._animations = _54 || [];
            this._connects = [];
            this._finished = 0;
            this.duration = 0;
            d.forEach(_54, function(a) {
                var _55 = a.duration;
                if (a.delay) {
                    _55 += a.delay;
                }
                if (this.duration < _55) {
                    this.duration = _55;
                }
                this._connects.push(d.connect(a, "onEnd", this, "_onEnd"));
            }, this);
            this._pseudoAnimation = new d.Animation({
                curve: [0, 1],
                duration: this.duration
            });
            var _56 = this;
            d.forEach(["beforeBegin", "onBegin", "onPlay", "onAnimate", "onPause", "onStop", "onEnd"], function(evt) {
                _56._connects.push(d.connect(_56._pseudoAnimation, evt, function() {
                    _56._fire(evt, arguments);
                }));
            });
        }
        ;
        d.extend(_53, {
            _doAction: function(_57, _58) {
                d.forEach(this._animations, function(a) {
                    a[_57].apply(a, _58);
                });
                return this;
            },
            _onEnd: function() {
                if (++this._finished > this._animations.length) {
                    this._fire("onEnd");
                }
            },
            _call: function(_59, _5a) {
                var t = this._pseudoAnimation;
                t[_59].apply(t, _5a);
            },
            play: function(_5b, _5c) {
                this._finished = 0;
                this._doAction("play", arguments);
                this._call("play", arguments);
                return this;
            },
            pause: function() {
                this._doAction("pause", arguments);
                this._call("pause", arguments);
                return this;
            },
            gotoPercent: function(_5d, _5e) {
                var ms = this.duration * _5d;
                d.forEach(this._animations, function(a) {
                    a.gotoPercent(a.duration < ms ? 1 : (ms / a.duration), _5e);
                });
                this._call("gotoPercent", arguments);
                return this;
            },
            stop: function(_5f) {
                this._doAction("stop", arguments);
                this._call("stop", arguments);
                return this;
            },
            status: function() {
                return this._pseudoAnimation.status();
            },
            destroy: function() {
                d.forEach(this._connects, dojo.disconnect);
            }
        });
        d.extend(_53, _45);
        dojo.fx.combine = function(_60) {
            return new _53(_60);
        }
        ;
        dojo.fx.wipeIn = function(_61) {
            var _62 = _61.node = d.byId(_61.node), s = _62.style, o;
            var _63 = d.animateProperty(d.mixin({
                properties: {
                    height: {
                        start: function() {
                            o = s.overflow;
                            s.overflow = "hidden";
                            if (s.visibility == "hidden" || s.display == "none") {
                                s.height = "1px";
                                s.display = "";
                                s.visibility = "";
                                return 1;
                            } else {
                                var _64 = d.style(_62, "height");
                                return Math.max(_64, 1);
                            }
                        },
                        end: function() {
                            return _62.scrollHeight;
                        }
                    }
                }
            }, _61));
            d.connect(_63, "onEnd", function() {
                s.height = "auto";
                s.overflow = o;
            });
            return _63;
        }
        ;
        dojo.fx.wipeOut = function(_65) {
            var _66 = _65.node = d.byId(_65.node), s = _66.style, o;
            var _67 = d.animateProperty(d.mixin({
                properties: {
                    height: {
                        end: 1
                    }
                }
            }, _65));
            d.connect(_67, "beforeBegin", function() {
                o = s.overflow;
                s.overflow = "hidden";
                s.display = "";
            });
            d.connect(_67, "onEnd", function() {
                s.overflow = o;
                s.height = "auto";
                s.display = "none";
            });
            return _67;
        }
        ;
        dojo.fx.slideTo = function(_68) {
            var _69 = _68.node = d.byId(_68.node)
              , top = null 
              , _6a = null ;
            var _6b = (function(n) {
                return function() {
                    var cs = d.getComputedStyle(n);
                    var pos = cs.position;
                    top = (pos == "absolute" ? n.offsetTop : parseInt(cs.top) || 0);
                    _6a = (pos == "absolute" ? n.offsetLeft : parseInt(cs.left) || 0);
                    if (pos != "absolute" && pos != "relative") {
                        var ret = d.position(n, true);
                        top = ret.y;
                        _6a = ret.x;
                        n.style.position = "absolute";
                        n.style.top = top + "px";
                        n.style.left = _6a + "px";
                    }
                }
                ;
            })(_69);
            _6b();
            var _6c = d.animateProperty(d.mixin({
                properties: {
                    top: _68.top || 0,
                    left: _68.left || 0
                }
            }, _68));
            d.connect(_6c, "beforeBegin", _6c, _6b);
            return _6c;
        }
        ;
    })();
}
if (!dojo._hasResource["dijit._base.manager"]) {
    dojo._hasResource["dijit._base.manager"] = true;
    dojo.provide("dijit._base.manager");
    dojo.declare("dijit.WidgetSet", null , {
        constructor: function() {
            this._hash = {};
            this.length = 0;
        },
        add: function(_6d) {
            if (this._hash[_6d.id]) {
                throw new Error("Tried to register widget with id==" + _6d.id + " but that id is already registered");
            }
            this._hash[_6d.id] = _6d;
            this.length++;
        },
        remove: function(id) {
            if (this._hash[id]) {
                delete this._hash[id];
                this.length--;
            }
        },
        forEach: function(_6e, _6f) {
            _6f = _6f || dojo.global;
            var i = 0, id;
            for (id in this._hash) {
                _6e.call(_6f, this._hash[id], i++, this._hash);
            }
            return this;
        },
        filter: function(_70, _71) {
            _71 = _71 || dojo.global;
            var res = new dijit.WidgetSet(), i = 0, id;
            for (id in this._hash) {
                var w = this._hash[id];
                if (_70.call(_71, w, i++, this._hash)) {
                    res.add(w);
                }
            }
            return res;
        },
        byId: function(id) {
            return this._hash[id];
        },
        byClass: function(cls) {
            var res = new dijit.WidgetSet(), id, _72;
            for (id in this._hash) {
                _72 = this._hash[id];
                if (_72.declaredClass == cls) {
                    res.add(_72);
                }
            }
            return res;
        },
        toArray: function() {
            var ar = [];
            for (var id in this._hash) {
                ar.push(this._hash[id]);
            }
            return ar;
        },
        map: function(_73, _74) {
            return dojo.map(this.toArray(), _73, _74);
        },
        every: function(_75, _76) {
            _76 = _76 || dojo.global;
            var x = 0, i;
            for (i in this._hash) {
                if (!_75.call(_76, this._hash[i], x++, this._hash)) {
                    return false;
                }
            }
            return true;
        },
        some: function(_77, _78) {
            _78 = _78 || dojo.global;
            var x = 0, i;
            for (i in this._hash) {
                if (_77.call(_78, this._hash[i], x++, this._hash)) {
                    return true;
                }
            }
            return false;
        }
    });
    (function() {
        dijit.registry = new dijit.WidgetSet();
        var _79 = dijit.registry._hash
          , _7a = dojo.attr
          , _7b = dojo.hasAttr
          , _7c = dojo.style;
        dijit.byId = function(id) {
            return typeof id == "string" ? _79[id] : id;
        }
        ;
        var _7d = {};
        dijit.getUniqueId = function(_7e) {
            var id;
            do {
                id = _7e + "_" + (_7e in _7d ? ++_7d[_7e] : _7d[_7e] = 0);
            } while (_79[id]);return dijit._scopeName == "dijit" ? id : dijit._scopeName + "_" + id;
        }
        ;
        dijit.findWidgets = function(_7f) {
            var _80 = [];
            function _81(_82) {
                for (var _83 = _82.firstChild; _83; _83 = _83.nextSibling) {
                    if (_83.nodeType == 1) {
                        var _84 = _83.getAttribute("widgetId");
                        if (_84) {
                            var _85 = _79[_84];
                            if (_85) {
                                _80.push(_85);
                            }
                        } else {
                            _81(_83);
                        }
                    }
                }
            }
            ;_81(_7f);
            return _80;
        }
        ;
        dijit._destroyAll = function() {
            dijit._curFocus = null ;
            dijit._prevFocus = null ;
            dijit._activeStack = [];
            dojo.forEach(dijit.findWidgets(dojo.body()), function(_86) {
                if (!_86._destroyed) {
                    if (_86.destroyRecursive) {
                        _86.destroyRecursive();
                    } else {
                        if (_86.destroy) {
                            _86.destroy();
                        }
                    }
                }
            });
        }
        ;
        if (dojo.isIE) {
            dojo.addOnWindowUnload(function() {
                dijit._destroyAll();
            });
        }
        dijit.byNode = function(_87) {
            return _79[_87.getAttribute("widgetId")];
        }
        ;
        dijit.getEnclosingWidget = function(_88) {
            while (_88) {
                var id = _88.getAttribute && _88.getAttribute("widgetId");
                if (id) {
                    return _79[id];
                }
                _88 = _88.parentNode;
            }
            return null ;
        }
        ;
        var _89 = (dijit._isElementShown = function(_8a) {
            var s = _7c(_8a);
            return (s.visibility != "hidden") && (s.visibility != "collapsed") && (s.display != "none") && (_7a(_8a, "type") != "hidden");
        }
        );
        dijit.hasDefaultTabStop = function(_8b) {
            switch (_8b.nodeName.toLowerCase()) {
            case "a":
                return _7b(_8b, "href");
            case "area":
            case "button":
            case "input":
            case "object":
            case "select":
            case "textarea":
                return true;
            case "iframe":
                var _8c;
                try {
                    var _8d = _8b.contentDocument;
                    if ("designMode" in _8d && _8d.designMode == "on") {
                        return true;
                    }
                    _8c = _8d.body;
                } catch (e1) {
                    try {
                        _8c = _8b.contentWindow.document.body;
                    } catch (e2) {
                        return false;
                    }
                }
                return _8c.contentEditable == "true" || (_8c.firstChild && _8c.firstChild.contentEditable == "true");
            default:
                return _8b.contentEditable == "true";
            }
        }
        ;
        var _8e = (dijit.isTabNavigable = function(_8f) {
            if (_7a(_8f, "disabled")) {
                return false;
            } else {
                if (_7b(_8f, "tabIndex")) {
                    return _7a(_8f, "tabIndex") >= 0;
                } else {
                    return dijit.hasDefaultTabStop(_8f);
                }
            }
        }
        );
        dijit._getTabNavigable = function(_90) {
            var _91, _92, _93, _94, _95, _96, _97 = {};
            function _98(_99) {
                return _99 && _99.tagName.toLowerCase() == "input" && _99.type && _99.type.toLowerCase() == "radio" && _99.name && _99.name.toLowerCase();
            }
            ;var _9a = function(_9b) {
                dojo.query("> *", _9b).forEach(function(_9c) {
                    if ((dojo.isIE && _9c.scopeName !== "HTML") || !_89(_9c)) {
                        return;
                    }
                    if (_8e(_9c)) {
                        var _9d = _7a(_9c, "tabIndex");
                        if (!_7b(_9c, "tabIndex") || _9d == 0) {
                            if (!_91) {
                                _91 = _9c;
                            }
                            _92 = _9c;
                        } else {
                            if (_9d > 0) {
                                if (!_93 || _9d < _94) {
                                    _94 = _9d;
                                    _93 = _9c;
                                }
                                if (!_95 || _9d >= _96) {
                                    _96 = _9d;
                                    _95 = _9c;
                                }
                            }
                        }
                        var rn = _98(_9c);
                        if (dojo.attr(_9c, "checked") && rn) {
                            _97[rn] = _9c;
                        }
                    }
                    if (_9c.nodeName.toUpperCase() != "SELECT") {
                        _9a(_9c);
                    }
                });
            }
            ;
            if (_89(_90)) {
                _9a(_90);
            }
            function rs(_9e) {
                return _97[_98(_9e)] || _9e;
            }
            ;return {
                first: rs(_91),
                last: rs(_92),
                lowest: rs(_93),
                highest: rs(_95)
            };
        }
        ;
        dijit.getFirstInTabbingOrder = function(_9f) {
            var _a0 = dijit._getTabNavigable(dojo.byId(_9f));
            return _a0.lowest ? _a0.lowest : _a0.first;
        }
        ;
        dijit.getLastInTabbingOrder = function(_a1) {
            var _a2 = dijit._getTabNavigable(dojo.byId(_a1));
            return _a2.last ? _a2.last : _a2.highest;
        }
        ;
        dijit.defaultDuration = dojo.config["defaultDuration"] || 200;
    })();
}
if (!dojo._hasResource["dojo.Stateful"]) {
    dojo._hasResource["dojo.Stateful"] = true;
    dojo.provide("dojo.Stateful");
    dojo.declare("dojo.Stateful", null , {
        postscript: function(_a3) {
            if (_a3) {
                dojo.mixin(this, _a3);
            }
        },
        get: function(_a4) {
            return this[_a4];
        },
        set: function(_a5, _a6) {
            if (typeof _a5 === "object") {
                for (var x in _a5) {
                    this.set(x, _a5[x]);
                }
                return this;
            }
            var _a7 = this[_a5];
            this[_a5] = _a6;
            if (this._watchCallbacks) {
                this._watchCallbacks(_a5, _a7, _a6);
            }
            return this;
        },
        watch: function(_a8, _a9) {
            var _aa = this._watchCallbacks;
            if (!_aa) {
                var _ab = this;
                _aa = this._watchCallbacks = function(_ac, _ad, _ae, _af) {
                    var _b0 = function(_b1) {
                        if (_b1) {
                            _b1 = _b1.slice();
                            for (var i = 0, l = _b1.length; i < l; i++) {
                                try {
                                    _b1[i].call(_ab, _ac, _ad, _ae);
                                } catch (e) {
                                    console.error(e);
                                }
                            }
                        }
                    }
                    ;
                    _b0(_aa["_" + _ac]);
                    if (!_af) {
                        _b0(_aa["*"]);
                    }
                }
                ;
            }
            if (!_a9 && typeof _a8 === "function") {
                _a9 = _a8;
                _a8 = "*";
            } else {
                _a8 = "_" + _a8;
            }
            var _b2 = _aa[_a8];
            if (typeof _b2 !== "object") {
                _b2 = _aa[_a8] = [];
            }
            _b2.push(_a9);
            return {
                unwatch: function() {
                    _b2.splice(dojo.indexOf(_b2, _a9), 1);
                }
            };
        }
    });
}
if (!dojo._hasResource["dijit._WidgetBase"]) {
    dojo._hasResource["dijit._WidgetBase"] = true;
    dojo.provide("dijit._WidgetBase");
    (function() {
        dojo.declare("dijit._WidgetBase", dojo.Stateful, {
            id: "",
            lang: "",
            dir: "",
            "class": "",
            style: "",
            title: "",
            tooltip: "",
            baseClass: "",
            srcNodeRef: null ,
            domNode: null ,
            containerNode: null ,
            attributeMap: {
                id: "",
                dir: "",
                lang: "",
                "class": "",
                style: "",
                title: ""
            },
            _blankGif: (dojo.config.blankGif || dojo.moduleUrl("dojo", "resources/blank.gif")).toString(),
            postscript: function(_b3, _b4) {
                this.create(_b3, _b4);
            },
            create: function(_b5, _b6) {
                this.srcNodeRef = dojo.byId(_b6);
                this._connects = [];
                this._subscribes = [];
                if (this.srcNodeRef && (typeof this.srcNodeRef.id == "string")) {
                    this.id = this.srcNodeRef.id;
                }
                if (_b5) {
                    this.params = _b5;
                    dojo._mixin(this, _b5);
                }
                this.postMixInProperties();
                if (!this.id) {
                    this.id = dijit.getUniqueId(this.declaredClass.replace(/\./g, "_"));
                }
                dijit.registry.add(this);
                this.buildRendering();
                if (this.domNode) {
                    this._applyAttributes();
                    var _b7 = this.srcNodeRef;
                    if (_b7 && _b7.parentNode && this.domNode !== _b7) {
                        _b7.parentNode.replaceChild(this.domNode, _b7);
                    }
                }
                if (this.domNode) {
                    this.domNode.setAttribute("widgetId", this.id);
                }
                this.postCreate();
                if (this.srcNodeRef && !this.srcNodeRef.parentNode) {
                    delete this.srcNodeRef;
                }
                this._created = true;
            },
            _applyAttributes: function() {
                var _b8 = function(_b9, _ba) {
                    if ((_ba.params && _b9 in _ba.params) || _ba[_b9]) {
                        _ba.set(_b9, _ba[_b9]);
                    }
                }
                ;
                for (var _bb in this.attributeMap) {
                    _b8(_bb, this);
                }
                dojo.forEach(this._getSetterAttributes(), function(a) {
                    if (!(a in this.attributeMap)) {
                        _b8(a, this);
                    }
                }, this);
            },
            _getSetterAttributes: function() {
                var _bc = this.constructor;
                if (!_bc._setterAttrs) {
                    var r = (_bc._setterAttrs = []), _bd, _be = _bc.prototype;
                    for (var _bf in _be) {
                        if (dojo.isFunction(_be[_bf]) && (_bd = _bf.match(/^_set([a-zA-Z]*)Attr$/)) && _bd[1]) {
                            r.push(_bd[1].charAt(0).toLowerCase() + _bd[1].substr(1));
                        }
                    }
                }
                return _bc._setterAttrs;
            },
            postMixInProperties: function() {},
            buildRendering: function() {
                if (!this.domNode) {
                    this.domNode = this.srcNodeRef || dojo.create("div");
                }
                if (this.baseClass) {
                    var _c0 = this.baseClass.split(" ");
                    if (!this.isLeftToRight()) {
                        _c0 = _c0.concat(dojo.map(_c0, function(_c1) {
                            return _c1 + "Rtl";
                        }));
                    }
                    dojo.addClass(this.domNode, _c0);
                }
            },
            postCreate: function() {},
            startup: function() {
                this._started = true;
            },
            destroyRecursive: function(_c2) {
                this._beingDestroyed = true;
                this.destroyDescendants(_c2);
                this.destroy(_c2);
            },
            destroy: function(_c3) {
                this._beingDestroyed = true;
                this.uninitialize();
                var d = dojo
                  , dfe = d.forEach
                  , dun = d.unsubscribe;
                dfe(this._connects, function(_c4) {
                    dfe(_c4, d.disconnect);
                });
                dfe(this._subscribes, function(_c5) {
                    dun(_c5);
                });
                dfe(this._supportingWidgets || [], function(w) {
                    if (w.destroyRecursive) {
                        w.destroyRecursive();
                    } else {
                        if (w.destroy) {
                            w.destroy();
                        }
                    }
                });
                this.destroyRendering(_c3);
                dijit.registry.remove(this.id);
                this._destroyed = true;
            },
            destroyRendering: function(_c6) {
                if (this.bgIframe) {
                    this.bgIframe.destroy(_c6);
                    delete this.bgIframe;
                }
                if (this.domNode) {
                    if (_c6) {
                        dojo.removeAttr(this.domNode, "widgetId");
                    } else {
                        dojo.destroy(this.domNode);
                    }
                    delete this.domNode;
                }
                if (this.srcNodeRef) {
                    if (!_c6) {
                        dojo.destroy(this.srcNodeRef);
                    }
                    delete this.srcNodeRef;
                }
            },
            destroyDescendants: function(_c7) {
                dojo.forEach(this.getChildren(), function(_c8) {
                    if (_c8.destroyRecursive) {
                        _c8.destroyRecursive(_c7);
                    }
                });
            },
            uninitialize: function() {
                return false;
            },
            _setClassAttr: function(_c9) {
                var _ca = this[this.attributeMap["class"] || "domNode"];
                dojo.replaceClass(_ca, _c9, this["class"]);
                this._set("class", _c9);
            },
            _setStyleAttr: function(_cb) {
                var _cc = this[this.attributeMap.style || "domNode"];
                if (dojo.isObject(_cb)) {
                    dojo.style(_cc, _cb);
                } else {
                    if (_cc.style.cssText) {
                        _cc.style.cssText += "; " + _cb;
                    } else {
                        _cc.style.cssText = _cb;
                    }
                }
                this._set("style", _cb);
            },
            _attrToDom: function(_cd, _ce) {
                var _cf = this.attributeMap[_cd];
                dojo.forEach(dojo.isArray(_cf) ? _cf : [_cf], function(_d0) {
                    var _d1 = this[_d0.node || _d0 || "domNode"];
                    var _d2 = _d0.type || "attribute";
                    switch (_d2) {
                    case "attribute":
                        if (dojo.isFunction(_ce)) {
                            _ce = dojo.hitch(this, _ce);
                        }
                        var _d3 = _d0.attribute ? _d0.attribute : (/^on[A-Z][a-zA-Z]*$/.test(_cd) ? _cd.toLowerCase() : _cd);
                        dojo.attr(_d1, _d3, _ce);
                        break;
                    case "innerText":
                        _d1.innerHTML = "";
                        _d1.appendChild(dojo.doc.createTextNode(_ce));
                        break;
                    case "innerHTML":
                        _d1.innerHTML = _ce;
                        break;
                    case "class":
                        dojo.replaceClass(_d1, _ce, this[_cd]);
                        break;
                    }
                }, this);
            },
            get: function(_d4) {
                var _d5 = this._getAttrNames(_d4);
                return this[_d5.g] ? this[_d5.g]() : this[_d4];
            },
            set: function(_d6, _d7) {
                if (typeof _d6 === "object") {
                    for (var x in _d6) {
                        this.set(x, _d6[x]);
                    }
                    return this;
                }
                var _d8 = this._getAttrNames(_d6);
                if (this[_d8.s]) {
                    var _d9 = this[_d8.s].apply(this, Array.prototype.slice.call(arguments, 1));
                } else {
                    if (_d6 in this.attributeMap) {
                        this._attrToDom(_d6, _d7);
                    }
                    this._set(_d6, _d7);
                }
                return _d9 || this;
            },
            _attrPairNames: {},
            _getAttrNames: function(_da) {
                var apn = this._attrPairNames;
                if (apn[_da]) {
                    return apn[_da];
                }
                var uc = _da.charAt(0).toUpperCase() + _da.substr(1);
                return ( apn[_da] = {
                    n: _da + "Node",
                    s: "_set" + uc + "Attr",
                    g: "_get" + uc + "Attr"
                }) ;
            },
            _set: function(_db, _dc) {
                var _dd = this[_db];
                this[_db] = _dc;
                if (this._watchCallbacks && this._created && _dc !== _dd) {
                    this._watchCallbacks(_db, _dd, _dc);
                }
            },
            toString: function() {
                return "[Widget " + this.declaredClass + ", " + (this.id || "NO ID") + "]";
            },
            getDescendants: function() {
                return this.containerNode ? dojo.query("[widgetId]", this.containerNode).map(dijit.byNode) : [];
            },
            getChildren: function() {
                return this.containerNode ? dijit.findWidgets(this.containerNode) : [];
            },
            connect: function(obj, _de, _df) {
                var _e0 = [dojo._connect(obj, _de, this, _df)];
                this._connects.push(_e0);
                return _e0;
            },
            disconnect: function(_e1) {
                for (var i = 0; i < this._connects.length; i++) {
                    if (this._connects[i] == _e1) {
                        dojo.forEach(_e1, dojo.disconnect);
                        this._connects.splice(i, 1);
                        return;
                    }
                }
            },
            subscribe: function(_e2, _e3) {
                var _e4 = dojo.subscribe(_e2, this, _e3);
                this._subscribes.push(_e4);
                return _e4;
            },
            unsubscribe: function(_e5) {
                for (var i = 0; i < this._subscribes.length; i++) {
                    if (this._subscribes[i] == _e5) {
                        dojo.unsubscribe(_e5);
                        this._subscribes.splice(i, 1);
                        return;
                    }
                }
            },
            isLeftToRight: function() {
                return this.dir ? (this.dir == "ltr") : dojo._isBodyLtr();
            },
            placeAt: function(_e6, _e7) {
                if (_e6.declaredClass && _e6.addChild) {
                    _e6.addChild(this, _e7);
                } else {
                    dojo.place(this.domNode, _e6, _e7);
                }
                return this;
            }
        });
    })();
}
if (!dojo._hasResource["dijit._base.focus"]) {
    dojo._hasResource["dijit._base.focus"] = true;
    dojo.provide("dijit._base.focus");
    dojo.mixin(dijit, {
        _curFocus: null ,
        _prevFocus: null ,
        isCollapsed: function() {
            return dijit.getBookmark().isCollapsed;
        },
        getBookmark: function() {
            var bm, rg, tg, sel = dojo.doc.selection, cf = dijit._curFocus;
            if (dojo.global.getSelection) {
                sel = dojo.global.getSelection();
                if (sel) {
                    if (sel.isCollapsed) {
                        tg = cf ? cf.tagName : "";
                        if (tg) {
                            tg = tg.toLowerCase();
                            if (tg == "textarea" || (tg == "input" && (!cf.type || cf.type.toLowerCase() == "text"))) {
                                sel = {
                                    start: cf.selectionStart,
                                    end: cf.selectionEnd,
                                    node: cf,
                                    pRange: true
                                };
                                return {
                                    isCollapsed: (sel.end <= sel.start),
                                    mark: sel
                                };
                            }
                        }
                        bm = {
                            isCollapsed: true
                        };
                        if (sel.rangeCount) {
                            bm.mark = sel.getRangeAt(0).cloneRange();
                        }
                    } else {
                        rg = sel.getRangeAt(0);
                        bm = {
                            isCollapsed: false,
                            mark: rg.cloneRange()
                        };
                    }
                }
            } else {
                if (sel) {
                    tg = cf ? cf.tagName : "";
                    tg = tg.toLowerCase();
                    if (cf && tg && (tg == "button" || tg == "textarea" || tg == "input")) {
                        if (sel.type && sel.type.toLowerCase() == "none") {
                            return {
                                isCollapsed: true,
                                mark: null 
                            };
                        } else {
                            rg = sel.createRange();
                            return {
                                isCollapsed: rg.text && rg.text.length ? false : true,
                                mark: {
                                    range: rg,
                                    pRange: true
                                }
                            };
                        }
                    }
                    bm = {};
                    try {
                        rg = sel.createRange();
                        bm.isCollapsed = !(sel.type == "Text" ? rg.htmlText.length : rg.length);
                    } catch (e) {
                        bm.isCollapsed = true;
                        return bm;
                    }
                    if (sel.type.toUpperCase() == "CONTROL") {
                        if (rg.length) {
                            bm.mark = [];
                            var i = 0
                              , len = rg.length;
                            while (i < len) {
                                bm.mark.push(rg.item(i++));
                            }
                        } else {
                            bm.isCollapsed = true;
                            bm.mark = null ;
                        }
                    } else {
                        bm.mark = rg.getBookmark();
                    }
                } else {
                    console.warn("No idea how to store the current selection for this browser!");
                }
            }
            return bm;
        },
        moveToBookmark: function(_e8) {
            var _e9 = dojo.doc
              , _ea = _e8.mark;
            if (_ea) {
                if (dojo.global.getSelection) {
                    var sel = dojo.global.getSelection();
                    if (sel && sel.removeAllRanges) {
                        if (_ea.pRange) {
                            var r = _ea;
                            var n = r.node;
                            n.selectionStart = r.start;
                            n.selectionEnd = r.end;
                        } else {
                            sel.removeAllRanges();
                            sel.addRange(_ea);
                        }
                    } else {
                        console.warn("No idea how to restore selection for this browser!");
                    }
                } else {
                    if (_e9.selection && _ea) {
                        var rg;
                        if (_ea.pRange) {
                            rg = _ea.range;
                        } else {
                            if (dojo.isArray(_ea)) {
                                rg = _e9.body.createControlRange();
                                dojo.forEach(_ea, function(n) {
                                    rg.addElement(n);
                                });
                            } else {
                                rg = _e9.body.createTextRange();
                                rg.moveToBookmark(_ea);
                            }
                        }
                        rg.select();
                    }
                }
            }
        },
        getFocus: function(_eb, _ec) {
            var _ed = !dijit._curFocus || (_eb && dojo.isDescendant(dijit._curFocus, _eb.domNode)) ? dijit._prevFocus : dijit._curFocus;
            return {
                node: _ed,
                bookmark: (_ed == dijit._curFocus) && dojo.withGlobal(_ec || dojo.global, dijit.getBookmark),
                openedForWindow: _ec
            };
        },
        focus: function(_ee) {
            if (!_ee) {
                return;
            }
            var _ef = "node" in _ee ? _ee.node : _ee
              , _f0 = _ee.bookmark
              , _f1 = _ee.openedForWindow
              , _f2 = _f0 ? _f0.isCollapsed : false;
            if (_ef) {
                var _f3 = (_ef.tagName.toLowerCase() == "iframe") ? _ef.contentWindow : _ef;
                if (_f3 && _f3.focus) {
                    try {
                        _f3.focus();
                    } catch (e) {}
                }
                dijit._onFocusNode(_ef);
            }
            if (_f0 && dojo.withGlobal(_f1 || dojo.global, dijit.isCollapsed) && !_f2) {
                if (_f1) {
                    _f1.focus();
                }
                try {
                    dojo.withGlobal(_f1 || dojo.global, dijit.moveToBookmark, null , [_f0]);
                } catch (e2) {}
            }
        },
        _activeStack: [],
        registerIframe: function(_f4) {
            return dijit.registerWin(_f4.contentWindow, _f4);
        },
        unregisterIframe: function(_f5) {
            dijit.unregisterWin(_f5);
        },
        registerWin: function(_f6, _f7) {
            var _f8 = function(evt) {
                dijit._justMouseDowned = true;
                setTimeout(function() {
                    dijit._justMouseDowned = false;
                }, 0);
                if (dojo.isIE && evt && evt.srcElement && evt.srcElement.parentNode == null ) {
                    return;
                }
                dijit._onTouchNode(_f7 || evt.target || evt.srcElement, "mouse");
            }
            ;
            var doc = dojo.isIE ? _f6.document.documentElement : _f6.document;
            if (doc) {
                if (dojo.isIE) {
                    _f6.document.body.attachEvent("onmousedown", _f8);
                    var _f9 = function(evt) {
                        if (evt.srcElement.tagName.toLowerCase() != "#document" && dijit.isTabNavigable(evt.srcElement)) {
                            dijit._onFocusNode(_f7 || evt.srcElement);
                        } else {
                            dijit._onTouchNode(_f7 || evt.srcElement);
                        }
                    }
                    ;
                    doc.attachEvent("onactivate", _f9);
                    var _fa = function(evt) {
                        dijit._onBlurNode(_f7 || evt.srcElement);
                    }
                    ;
                    doc.attachEvent("ondeactivate", _fa);
                    return function() {
                        _f6.document.detachEvent("onmousedown", _f8);
                        doc.detachEvent("onactivate", _f9);
                        doc.detachEvent("ondeactivate", _fa);
                        doc = null ;
                    }
                    ;
                } else {
                    doc.body.addEventListener("mousedown", _f8, true);
                    var _fb = function(evt) {
                        dijit._onFocusNode(_f7 || evt.target);
                    }
                    ;
                    doc.addEventListener("focus", _fb, true);
                    var _fc = function(evt) {
                        dijit._onBlurNode(_f7 || evt.target);
                    }
                    ;
                    doc.addEventListener("blur", _fc, true);
                    return function() {
                        doc.body.removeEventListener("mousedown", _f8, true);
                        doc.removeEventListener("focus", _fb, true);
                        doc.removeEventListener("blur", _fc, true);
                        doc = null ;
                    }
                    ;
                }
            }
        },
        unregisterWin: function(_fd) {
            _fd && _fd();
        },
        _onBlurNode: function(_fe) {
            dijit._prevFocus = dijit._curFocus;
            dijit._curFocus = null ;
            if (dijit._justMouseDowned) {
                return;
            }
            if (dijit._clearActiveWidgetsTimer) {
                clearTimeout(dijit._clearActiveWidgetsTimer);
            }
            dijit._clearActiveWidgetsTimer = setTimeout(function() {
                delete dijit._clearActiveWidgetsTimer;
                dijit._setStack([]);
                dijit._prevFocus = null ;
            }, 100);
        },
        _onTouchNode: function(_ff, by) {
            if (dijit._clearActiveWidgetsTimer) {
                clearTimeout(dijit._clearActiveWidgetsTimer);
                delete dijit._clearActiveWidgetsTimer;
            }
            var _100 = [];
            try {
                while (_ff) {
                    var _101 = dojo.attr(_ff, "dijitPopupParent");
                    if (_101) {
                        _ff = dijit.byId(_101).domNode;
                    } else {
                        if (_ff.tagName && _ff.tagName.toLowerCase() == "body") {
                            if (_ff === dojo.body()) {
                                break;
                            }
                            _ff = dojo.window.get(_ff.ownerDocument).frameElement;
                        } else {
                            var id = _ff.getAttribute && _ff.getAttribute("widgetId")
                              , _102 = id && dijit.byId(id);
                            if (_102 && !(by == "mouse" && _102.get("disabled"))) {
                                _100.unshift(id);
                            }
                            _ff = _ff.parentNode;
                        }
                    }
                }
            } catch (e) {}
            dijit._setStack(_100, by);
        },
        _onFocusNode: function(node) {
            if (!node) {
                return;
            }
            if (node.nodeType == 9) {
                return;
            }
            dijit._onTouchNode(node);
            if (node == dijit._curFocus) {
                return;
            }
            if (dijit._curFocus) {
                dijit._prevFocus = dijit._curFocus;
            }
            dijit._curFocus = node;
            dojo.publish("focusNode", [node]);
        },
        _setStack: function(_103, by) {
            var _104 = dijit._activeStack;
            dijit._activeStack = _103;
            for (var _105 = 0; _105 < Math.min(_104.length, _103.length); _105++) {
                if (_104[_105] != _103[_105]) {
                    break;
                }
            }
            var _106;
            for (var i = _104.length - 1; i >= _105; i--) {
                _106 = dijit.byId(_104[i]);
                if (_106) {
                    _106._focused = false;
                    _106.set("focused", false);
                    _106._hasBeenBlurred = true;
                    if (_106._onBlur) {
                        _106._onBlur(by);
                    }
                    dojo.publish("widgetBlur", [_106, by]);
                }
            }
            for (i = _105; i < _103.length; i++) {
                _106 = dijit.byId(_103[i]);
                if (_106) {
                    _106._focused = true;
                    _106.set("focused", true);
                    if (_106._onFocus) {
                        _106._onFocus(by);
                    }
                    dojo.publish("widgetFocus", [_106, by]);
                }
            }
        }
    });
    dojo.addOnLoad(function() {
        var _107 = dijit.registerWin(window);
        if (dojo.isIE) {
            dojo.addOnWindowUnload(function() {
                dijit.unregisterWin(_107);
                _107 = null ;
            });
        }
    });
}
if (!dojo._hasResource["dojo.AdapterRegistry"]) {
    dojo._hasResource["dojo.AdapterRegistry"] = true;
    dojo.provide("dojo.AdapterRegistry");
    dojo.AdapterRegistry = function(_108) {
        this.pairs = [];
        this.returnWrappers = _108 || false;
    }
    ;
    dojo.extend(dojo.AdapterRegistry, {
        register: function(name, _109, wrap, _10a, _10b) {
            this.pairs[((_10b) ? "unshift" : "push")]([name, _109, wrap, _10a]);
        },
        match: function() {
            for (var i = 0; i < this.pairs.length; i++) {
                var pair = this.pairs[i];
                if (pair[1].apply(this, arguments)) {
                    if ((pair[3]) || (this.returnWrappers)) {
                        return pair[2];
                    } else {
                        return pair[2].apply(this, arguments);
                    }
                }
            }
            throw new Error("No match found");
        },
        unregister: function(name) {
            for (var i = 0; i < this.pairs.length; i++) {
                var pair = this.pairs[i];
                if (pair[0] == name) {
                    this.pairs.splice(i, 1);
                    return true;
                }
            }
            return false;
        }
    });
}
if (!dojo._hasResource["dijit._base.place"]) {
    dojo._hasResource["dijit._base.place"] = true;
    dojo.provide("dijit._base.place");
    dijit.getViewport = function() {
        return dojo.window.getBox();
    }
    ;
    dijit.placeOnScreen = function(node, pos, _10c, _10d) {
        var _10e = dojo.map(_10c, function(_10f) {
            var c = {
                corner: _10f,
                pos: {
                    x: pos.x,
                    y: pos.y
                }
            };
            if (_10d) {
                c.pos.x += _10f.charAt(1) == "L" ? _10d.x : -_10d.x;
                c.pos.y += _10f.charAt(0) == "T" ? _10d.y : -_10d.y;
            }
            return c;
        });
        return dijit._place(node, _10e);
    }
    ;
    dijit._place = function(node, _110, _111, _112) {
        var view = dojo.window.getBox();
        if (!node.parentNode || String(node.parentNode.tagName).toLowerCase() != "body") {
            dojo.body().appendChild(node);
        }
        var best = null ;
        dojo.some(_110, function(_113) {
            var _114 = _113.corner;
            var pos = _113.pos;
            var _115 = 0;
            var _116 = {
                w: _114.charAt(1) == "L" ? (view.l + view.w) - pos.x : pos.x - view.l,
                h: _114.charAt(1) == "T" ? (view.t + view.h) - pos.y : pos.y - view.t
            };
            if (_111) {
                var res = _111(node, _113.aroundCorner, _114, _116, _112);
                _115 = typeof res == "undefined" ? 0 : res;
            }
            var _117 = node.style;
            var _118 = _117.display;
            var _119 = _117.visibility;
            _117.visibility = "hidden";
            _117.display = "";
            var mb = dojo.marginBox(node);
            _117.display = _118;
            _117.visibility = _119;
            var _11a = Math.max(view.l, _114.charAt(1) == "L" ? pos.x : (pos.x - mb.w))
              , _11b = Math.max(view.t, _114.charAt(0) == "T" ? pos.y : (pos.y - mb.h))
              , endX = Math.min(view.l + view.w, _114.charAt(1) == "L" ? (_11a + mb.w) : pos.x)
              , endY = Math.min(view.t + view.h, _114.charAt(0) == "T" ? (_11b + mb.h) : pos.y)
              , _11c = endX - _11a
              , _11d = endY - _11b;
            _115 += (mb.w - _11c) + (mb.h - _11d);
            if (best == null  || _115 < best.overflow) {
                best = {
                    corner: _114,
                    aroundCorner: _113.aroundCorner,
                    x: _11a,
                    y: _11b,
                    w: _11c,
                    h: _11d,
                    overflow: _115,
                    spaceAvailable: _116
                };
            }
            return !_115;
        });
        if (best.overflow && _111) {
            _111(node, best.aroundCorner, best.corner, best.spaceAvailable, _112);
        }
        var l = dojo._isBodyLtr()
          , s = node.style;
        s.top = best.y + "px";
        s[l ? "left" : "right"] = (l ? best.x : view.w - best.x - best.w) + "px";
        return best;
    }
    ;
    dijit.placeOnScreenAroundNode = function(node, _11e, _11f, _120) {
        _11e = dojo.byId(_11e);
        var _121 = dojo.position(_11e, true);
        return dijit._placeOnScreenAroundRect(node, _121.x, _121.y, _121.w, _121.h, _11f, _120);
    }
    ;
    dijit.placeOnScreenAroundRectangle = function(node, _122, _123, _124) {
        return dijit._placeOnScreenAroundRect(node, _122.x, _122.y, _122.width, _122.height, _123, _124);
    }
    ;
    dijit._placeOnScreenAroundRect = function(node, x, y, _125, _126, _127, _128) {
        var _129 = [];
        for (var _12a in _127) {
            _129.push({
                aroundCorner: _12a,
                corner: _127[_12a],
                pos: {
                    x: x + (_12a.charAt(1) == "L" ? 0 : _125),
                    y: y + (_12a.charAt(0) == "T" ? 0 : _126)
                }
            });
        }
        return dijit._place(node, _129, _128, {
            w: _125,
            h: _126
        });
    }
    ;
    dijit.placementRegistry = new dojo.AdapterRegistry();
    dijit.placementRegistry.register("node", function(n, x) {
        return typeof x == "object" && typeof x.offsetWidth != "undefined" && typeof x.offsetHeight != "undefined";
    }, dijit.placeOnScreenAroundNode);
    dijit.placementRegistry.register("rect", function(n, x) {
        return typeof x == "object" && "x" in x && "y" in x && "width" in x && "height" in x;
    }, dijit.placeOnScreenAroundRectangle);
    dijit.placeOnScreenAroundElement = function(node, _12b, _12c, _12d) {
        return dijit.placementRegistry.match.apply(dijit.placementRegistry, arguments);
    }
    ;
    dijit.getPopupAroundAlignment = function(_12e, _12f) {
        var _130 = {};
        dojo.forEach(_12e, function(pos) {
            switch (pos) {
            case "after":
                _130[_12f ? "BR" : "BL"] = _12f ? "BL" : "BR";
                break;
            case "before":
                _130[_12f ? "BL" : "BR"] = _12f ? "BR" : "BL";
                break;
            case "below-alt":
                _12f = !_12f;
            case "below":
                _130[_12f ? "BL" : "BR"] = _12f ? "TL" : "TR";
                _130[_12f ? "BR" : "BL"] = _12f ? "TR" : "TL";
                break;
            case "above-alt":
                _12f = !_12f;
            case "above":
            default:
                _130[_12f ? "TL" : "TR"] = _12f ? "BL" : "BR";
                _130[_12f ? "TR" : "TL"] = _12f ? "BR" : "BL";
                break;
            }
        });
        return _130;
    }
    ;
}
if (!dojo._hasResource["dijit._base.window"]) {
    dojo._hasResource["dijit._base.window"] = true;
    dojo.provide("dijit._base.window");
    dijit.getDocumentWindow = function(doc) {
        return dojo.window.get(doc);
    }
    ;
}
if (!dojo._hasResource["dijit._base.popup"]) {
    dojo._hasResource["dijit._base.popup"] = true;
    dojo.provide("dijit._base.popup");
    dijit.popup = {
        _stack: [],
        _beginZIndex: 1000,
        _idGen: 1,
        _createWrapper: function(_131) {
            var _132 = _131.declaredClass ? _131._popupWrapper : (_131.parentNode && dojo.hasClass(_131.parentNode, "dijitPopup"))
              , node = _131.domNode || _131;
            if (!_132) {
                _132 = dojo.create("div", {
                    "class": "dijitPopup",
                    style: {
                        display: "none"
                    },
                    role: "presentation"
                }, dojo.body());
                _132.appendChild(node);
                var s = node.style;
                s.display = "";
                s.visibility = "";
                s.position = "";
                s.top = "0px";
                if (_131.declaredClass) {
                    _131._popupWrapper = _132;
                    dojo.connect(_131, "destroy", function() {
                        dojo.destroy(_132);
                        delete _131._popupWrapper;
                    });
                }
            }
            return _132;
        },
        moveOffScreen: function(_133) {
            var _134 = this._createWrapper(_133);
            dojo.style(_134, {
                visibility: "hidden",
                top: "-9999px",
                display: ""
            });
        },
        hide: function(_135) {
            var _136 = this._createWrapper(_135);
            dojo.style(_136, "display", "none");
        },
        getTopPopup: function() {
            var _137 = this._stack;
            for (var pi = _137.length - 1; pi > 0 && _137[pi].parent === _137[pi - 1].widget; pi--) {}
            return _137[pi];
        },
        open: function(args) {
            var _138 = this._stack
              , _139 = args.popup
              , _13a = args.orient || ((args.parent ? args.parent.isLeftToRight() : dojo._isBodyLtr()) ? {
                "BL": "TL",
                "BR": "TR",
                "TL": "BL",
                "TR": "BR"
            } : {
                "BR": "TR",
                "BL": "TL",
                "TR": "BR",
                "TL": "BL"
            })
              , _13b = args.around
              , id = (args.around && args.around.id) ? (args.around.id + "_dropdown") : ("popup_" + this._idGen++);
            while (_138.length && (!args.parent || !dojo.isDescendant(args.parent.domNode, _138[_138.length - 1].widget.domNode))) {
                dijit.popup.close(_138[_138.length - 1].widget);
            }
            var _13c = this._createWrapper(_139);
            dojo.attr(_13c, {
                id: id,
                style: {
                    zIndex: this._beginZIndex + _138.length
                },
                "class": "dijitPopup " + (_139.baseClass || _139["class"] || "").split(" ")[0] + "Popup",
                dijitPopupParent: args.parent ? args.parent.id : ""
            });
            if (dojo.isIE || dojo.isMoz) {
                if (!_139.bgIframe) {
                    _139.bgIframe = new dijit.BackgroundIframe(_13c);
                }
            }
            var best = _13b ? dijit.placeOnScreenAroundElement(_13c, _13b, _13a, _139.orient ? dojo.hitch(_139, "orient") : null ) : dijit.placeOnScreen(_13c, args, _13a == "R" ? ["TR", "BR", "TL", "BL"] : ["TL", "BL", "TR", "BR"], args.padding);
            _13c.style.display = "";
            _13c.style.visibility = "visible";
            _139.domNode.style.visibility = "visible";
            var _13d = [];
            _13d.push(dojo.connect(_13c, "onkeypress", this, function(evt) {
                if (evt.charOrCode == dojo.keys.ESCAPE && args.onCancel) {
                    dojo.stopEvent(evt);
                    args.onCancel();
                } else {
                    if (evt.charOrCode === dojo.keys.TAB) {
                        dojo.stopEvent(evt);
                        var _13e = this.getTopPopup();
                        if (_13e && _13e.onCancel) {
                            _13e.onCancel();
                        }
                    }
                }
            }));
            if (_139.onCancel) {
                _13d.push(dojo.connect(_139, "onCancel", args.onCancel));
            }
            _13d.push(dojo.connect(_139, _139.onExecute ? "onExecute" : "onChange", this, function() {
                var _13f = this.getTopPopup();
                if (_13f && _13f.onExecute) {
                    _13f.onExecute();
                }
            }));
            _138.push({
                widget: _139,
                parent: args.parent,
                onExecute: args.onExecute,
                onCancel: args.onCancel,
                onClose: args.onClose,
                handlers: _13d
            });
            if (_139.onOpen) {
                _139.onOpen(best);
            }
            return best;
        },
        close: function(_140) {
            var _141 = this._stack;
            while ((_140 && dojo.some(_141, function(elem) {
                return elem.widget == _140;
            })) || (!_140 && _141.length)) {
                var top = _141.pop()
                  , _142 = top.widget
                  , _143 = top.onClose;
                if (_142.onClose) {
                    _142.onClose();
                }
                dojo.forEach(top.handlers, dojo.disconnect);
                if (_142 && _142.domNode) {
                    this.hide(_142);
                }
                if (_143) {
                    _143();
                }
            }
        }
    };
    dijit._frames = new function() {
        var _144 = [];
        this.pop = function() {
            var _145;
            if (_144.length) {
                _145 = _144.pop();
                _145.style.display = "";
            } else {
                if (dojo.isIE < 9) {
                    var burl = dojo.config["dojoBlankHtmlUrl"] || (dojo.moduleUrl("dojo", "resources/blank.html") + "") || "javascript:\"\"";
                    var html = "<iframe src='" + burl + "'" + " style='position: absolute; left: 0px; top: 0px;" + "z-index: -1; filter:Alpha(Opacity=\"0\");'>";
                    _145 = dojo.doc.createElement(html);
                } else {
                    _145 = dojo.create("iframe");
                    _145.src = "javascript:\"\"";
                    _145.className = "dijitBackgroundIframe";
                    dojo.style(_145, "opacity", 0.1);
                }
                _145.tabIndex = -1;
                dijit.setWaiRole(_145, "presentation");
            }
            return _145;
        }
        ;
        this.push = function(_146) {
            _146.style.display = "none";
            _144.push(_146);
        }
        ;
    }
    ();
    dijit.BackgroundIframe = function(node) {
        if (!node.id) {
            throw new Error("no id");
        }
        if (dojo.isIE || dojo.isMoz) {
            var _147 = (this.iframe = dijit._frames.pop());
            node.appendChild(_147);
            if (dojo.isIE < 7 || dojo.isQuirks) {
                this.resize(node);
                this._conn = dojo.connect(node, "onresize", this, function() {
                    this.resize(node);
                });
            } else {
                dojo.style(_147, {
                    width: "100%",
                    height: "100%"
                });
            }
        }
    }
    ;
    dojo.extend(dijit.BackgroundIframe, {
        resize: function(node) {
            if (this.iframe) {
                dojo.style(this.iframe, {
                    width: node.offsetWidth + "px",
                    height: node.offsetHeight + "px"
                });
            }
        },
        destroy: function() {
            if (this._conn) {
                dojo.disconnect(this._conn);
                this._conn = null ;
            }
            if (this.iframe) {
                dijit._frames.push(this.iframe);
                delete this.iframe;
            }
        }
    });
}
if (!dojo._hasResource["dijit._base.scroll"]) {
    dojo._hasResource["dijit._base.scroll"] = true;
    dojo.provide("dijit._base.scroll");
    dijit.scrollIntoView = function(node, pos) {
        dojo.window.scrollIntoView(node, pos);
    }
    ;
}
if (!dojo._hasResource["dojo.uacss"]) {
    dojo._hasResource["dojo.uacss"] = true;
    dojo.provide("dojo.uacss");
    (function() {
        var d = dojo
          , html = d.doc.documentElement
          , ie = d.isIE
          , _148 = d.isOpera
          , maj = Math.floor
          , ff = d.isFF
          , _149 = d.boxModel.replace(/-/, "")
          , _14a = {
            dj_ie: ie,
            dj_ie6: maj(ie) == 6,
            dj_ie7: maj(ie) == 7,
            dj_ie8: maj(ie) == 8,
            dj_ie9: maj(ie) == 9,
            dj_quirks: d.isQuirks,
            dj_iequirks: ie && d.isQuirks,
            dj_opera: _148,
            dj_khtml: d.isKhtml,
            dj_webkit: d.isWebKit,
            dj_safari: d.isSafari,
            dj_chrome: d.isChrome,
            dj_gecko: d.isMozilla,
            dj_ff3: maj(ff) == 3
        };
        _14a["dj_" + _149] = true;
        var _14b = "";
        for (var clz in _14a) {
            if (_14a[clz]) {
                _14b += clz + " ";
            }
        }
        html.className = d.trim(html.className + " " + _14b);
        dojo._loaders.unshift(function() {
            if (!dojo._isBodyLtr()) {
                var _14c = "dj_rtl dijitRtl " + _14b.replace(/ /g, "-rtl ");
                html.className = d.trim(html.className + " " + _14c);
            }
        });
    })();
}
if (!dojo._hasResource["dijit._base.sniff"]) {
    dojo._hasResource["dijit._base.sniff"] = true;
    dojo.provide("dijit._base.sniff");
}
if (!dojo._hasResource["dijit._base.typematic"]) {
    dojo._hasResource["dijit._base.typematic"] = true;
    dojo.provide("dijit._base.typematic");
    dijit.typematic = {
        _fireEventAndReload: function() {
            this._timer = null ;
            this._callback(++this._count, this._node, this._evt);
            this._currentTimeout = Math.max(this._currentTimeout < 0 ? this._initialDelay : (this._subsequentDelay > 1 ? this._subsequentDelay : Math.round(this._currentTimeout * this._subsequentDelay)), this._minDelay);
            this._timer = setTimeout(dojo.hitch(this, "_fireEventAndReload"), this._currentTimeout);
        },
        trigger: function(evt, _14d, node, _14e, obj, _14f, _150, _151) {
            if (obj != this._obj) {
                this.stop();
                this._initialDelay = _150 || 500;
                this._subsequentDelay = _14f || 0.9;
                this._minDelay = _151 || 10;
                this._obj = obj;
                this._evt = evt;
                this._node = node;
                this._currentTimeout = -1;
                this._count = -1;
                this._callback = dojo.hitch(_14d, _14e);
                this._fireEventAndReload();
                this._evt = dojo.mixin({
                    faux: true
                }, evt);
            }
        },
        stop: function() {
            if (this._timer) {
                clearTimeout(this._timer);
                this._timer = null ;
            }
            if (this._obj) {
                this._callback(-1, this._node, this._evt);
                this._obj = null ;
            }
        },
        addKeyListener: function(node, _152, _153, _154, _155, _156, _157) {
            if (_152.keyCode) {
                _152.charOrCode = _152.keyCode;
                dojo.deprecated("keyCode attribute parameter for dijit.typematic.addKeyListener is deprecated. Use charOrCode instead.", "", "2.0");
            } else {
                if (_152.charCode) {
                    _152.charOrCode = String.fromCharCode(_152.charCode);
                    dojo.deprecated("charCode attribute parameter for dijit.typematic.addKeyListener is deprecated. Use charOrCode instead.", "", "2.0");
                }
            }
            return [dojo.connect(node, "onkeypress", this, function(evt) {
                if (evt.charOrCode == _152.charOrCode && (_152.ctrlKey === undefined || _152.ctrlKey == evt.ctrlKey) && (_152.altKey === undefined || _152.altKey == evt.altKey) && (_152.metaKey === undefined || _152.metaKey == (evt.metaKey || false)) && (_152.shiftKey === undefined || _152.shiftKey == evt.shiftKey)) {
                    dojo.stopEvent(evt);
                    dijit.typematic.trigger(evt, _153, node, _154, _152, _155, _156, _157);
                } else {
                    if (dijit.typematic._obj == _152) {
                        dijit.typematic.stop();
                    }
                }
            }), dojo.connect(node, "onkeyup", this, function(evt) {
                if (dijit.typematic._obj == _152) {
                    dijit.typematic.stop();
                }
            })];
        },
        addMouseListener: function(node, _158, _159, _15a, _15b, _15c) {
            var dc = dojo.connect;
            return [dc(node, "mousedown", this, function(evt) {
                dojo.stopEvent(evt);
                dijit.typematic.trigger(evt, _158, node, _159, node, _15a, _15b, _15c);
            }), dc(node, "mouseup", this, function(evt) {
                dojo.stopEvent(evt);
                dijit.typematic.stop();
            }), dc(node, "mouseout", this, function(evt) {
                dojo.stopEvent(evt);
                dijit.typematic.stop();
            }), dc(node, "mousemove", this, function(evt) {
                evt.preventDefault();
            }), dc(node, "dblclick", this, function(evt) {
                dojo.stopEvent(evt);
                if (dojo.isIE) {
                    dijit.typematic.trigger(evt, _158, node, _159, node, _15a, _15b, _15c);
                    setTimeout(dojo.hitch(this, dijit.typematic.stop), 50);
                }
            })];
        },
        addListener: function(_15d, _15e, _15f, _160, _161, _162, _163, _164) {
            return this.addKeyListener(_15e, _15f, _160, _161, _162, _163, _164).concat(this.addMouseListener(_15d, _160, _161, _162, _163, _164));
        }
    };
}
if (!dojo._hasResource["dijit._base.wai"]) {
    dojo._hasResource["dijit._base.wai"] = true;
    dojo.provide("dijit._base.wai");
    dijit.wai = {
        onload: function() {
            var div = dojo.create("div", {
                id: "a11yTestNode",
                style: {
                    cssText: "border: 1px solid;" + "border-color:red green;" + "position: absolute;" + "height: 5px;" + "top: -999px;" + "background-image: url(\"" + (dojo.config.blankGif || dojo.moduleUrl("dojo", "resources/blank.gif")) + "\");"
                }
            }, dojo.body());
            var cs = dojo.getComputedStyle(div);
            if (cs) {
                var _165 = cs.backgroundImage;
                var _166 = (cs.borderTopColor == cs.borderRightColor) || (_165 != null  && (_165 == "none" || _165 == "url(invalid-url:)"));
                dojo[_166 ? "addClass" : "removeClass"](dojo.body(), "dijit_a11y");
                if (dojo.isIE) {
                    div.outerHTML = "";
                } else {
                    dojo.body().removeChild(div);
                }
            }
        }
    };
    if (dojo.isIE || dojo.isMoz) {
        dojo._loaders.unshift(dijit.wai.onload);
    }
    dojo.mixin(dijit, {
        hasWaiRole: function(elem, role) {
            var _167 = this.getWaiRole(elem);
            return role ? (_167.indexOf(role) > -1) : (_167.length > 0);
        },
        getWaiRole: function(elem) {
            return dojo.trim((dojo.attr(elem, "role") || "").replace("wairole:", ""));
        },
        setWaiRole: function(elem, role) {
            dojo.attr(elem, "role", role);
        },
        removeWaiRole: function(elem, role) {
            var _168 = dojo.attr(elem, "role");
            if (!_168) {
                return;
            }
            if (role) {
                var t = dojo.trim((" " + _168 + " ").replace(" " + role + " ", " "));
                dojo.attr(elem, "role", t);
            } else {
                elem.removeAttribute("role");
            }
        },
        hasWaiState: function(elem, _169) {
            return elem.hasAttribute ? elem.hasAttribute("aria-" + _169) : !!elem.getAttribute("aria-" + _169);
        },
        getWaiState: function(elem, _16a) {
            return elem.getAttribute("aria-" + _16a) || "";
        },
        setWaiState: function(elem, _16b, _16c) {
            elem.setAttribute("aria-" + _16b, _16c);
        },
        removeWaiState: function(elem, _16d) {
            elem.removeAttribute("aria-" + _16d);
        }
    });
}
if (!dojo._hasResource["dijit._base"]) {
    dojo._hasResource["dijit._base"] = true;
    dojo.provide("dijit._base");
}
if (!dojo._hasResource["dijit._Widget"]) {
    dojo._hasResource["dijit._Widget"] = true;
    dojo.provide("dijit._Widget");
    dojo.connect(dojo, "_connect", function(_16e, _16f) {
        if (_16e && dojo.isFunction(_16e._onConnect)) {
            _16e._onConnect(_16f);
        }
    });
    dijit._connectOnUseEventHandler = function(_170) {}
    ;
    dijit._lastKeyDownNode = null ;
    if (dojo.isIE) {
        (function() {
            var _171 = function(evt) {
                dijit._lastKeyDownNode = evt.srcElement;
            }
            ;
            dojo.doc.attachEvent("onkeydown", _171);
            dojo.addOnWindowUnload(function() {
                dojo.doc.detachEvent("onkeydown", _171);
            });
        })();
    } else {
        dojo.doc.addEventListener("keydown", function(evt) {
            dijit._lastKeyDownNode = evt.target;
        }, true);
    }
    (function() {
        dojo.declare("dijit._Widget", dijit._WidgetBase, {
            _deferredConnects: {
                onClick: "",
                onDblClick: "",
                onKeyDown: "",
                onKeyPress: "",
                onKeyUp: "",
                onMouseMove: "",
                onMouseDown: "",
                onMouseOut: "",
                onMouseOver: "",
                onMouseLeave: "",
                onMouseEnter: "",
                onMouseUp: ""
            },
            onClick: dijit._connectOnUseEventHandler,
            onDblClick: dijit._connectOnUseEventHandler,
            onKeyDown: dijit._connectOnUseEventHandler,
            onKeyPress: dijit._connectOnUseEventHandler,
            onKeyUp: dijit._connectOnUseEventHandler,
            onMouseDown: dijit._connectOnUseEventHandler,
            onMouseMove: dijit._connectOnUseEventHandler,
            onMouseOut: dijit._connectOnUseEventHandler,
            onMouseOver: dijit._connectOnUseEventHandler,
            onMouseLeave: dijit._connectOnUseEventHandler,
            onMouseEnter: dijit._connectOnUseEventHandler,
            onMouseUp: dijit._connectOnUseEventHandler,
            create: function(_172, _173) {
                this._deferredConnects = dojo.clone(this._deferredConnects);
                for (var attr in this.attributeMap) {
                    delete this._deferredConnects[attr];
                }
                for (attr in this._deferredConnects) {
                    if (this[attr] !== dijit._connectOnUseEventHandler) {
                        delete this._deferredConnects[attr];
                    }
                }
                this.inherited(arguments);
                if (this.domNode) {
                    for (attr in this.params) {
                        this._onConnect(attr);
                    }
                }
            },
            _onConnect: function(_174) {
                if (_174 in this._deferredConnects) {
                    var _175 = this[this._deferredConnects[_174] || "domNode"];
                    this.connect(_175, _174.toLowerCase(), _174);
                    delete this._deferredConnects[_174];
                }
            },
            focused: false,
            isFocusable: function() {
                return this.focus && (dojo.style(this.domNode, "display") != "none");
            },
            onFocus: function() {},
            onBlur: function() {},
            _onFocus: function(e) {
                this.onFocus();
            },
            _onBlur: function() {
                this.onBlur();
            },
            setAttribute: function(attr, _176) {
                dojo.deprecated(this.declaredClass + "::setAttribute(attr, value) is deprecated. Use set() instead.", "", "2.0");
                this.set(attr, _176);
            },
            attr: function(name, _177) {
                if (dojo.config.isDebug) {
                    var _178 = arguments.callee._ach || (arguments.callee._ach = {})
                      , _179 = (arguments.callee.caller || "unknown caller").toString();
                    if (!_178[_179]) {
                        dojo.deprecated(this.declaredClass + "::attr() is deprecated. Use get() or set() instead, called from " + _179, "", "2.0");
                        _178[_179] = true;
                    }
                }
                var args = arguments.length;
                if (args >= 2 || typeof name === "object") {
                    return this.set.apply(this, arguments);
                } else {
                    return this.get(name);
                }
            },
            nodesWithKeyClick: ["input", "button"],
            connect: function(obj, _17a, _17b) {
                var d = dojo
                  , dc = d._connect
                  , _17c = this.inherited(arguments, [obj, _17a == "ondijitclick" ? "onclick" : _17a, _17b]);
                if (_17a == "ondijitclick") {
                    if (d.indexOf(this.nodesWithKeyClick, obj.nodeName.toLowerCase()) == -1) {
                        var m = d.hitch(this, _17b);
                        _17c.push(dc(obj, "onkeydown", this, function(e) {
                            if ((e.keyCode == d.keys.ENTER || e.keyCode == d.keys.SPACE) && !e.ctrlKey && !e.shiftKey && !e.altKey && !e.metaKey) {
                                dijit._lastKeyDownNode = e.target;
                                if (!("openDropDown" in this && obj == this._buttonNode)) {
                                    e.preventDefault();
                                }
                            }
                        }), dc(obj, "onkeyup", this, function(e) {
                            if ((e.keyCode == d.keys.ENTER || e.keyCode == d.keys.SPACE) && e.target == dijit._lastKeyDownNode && !e.ctrlKey && !e.shiftKey && !e.altKey && !e.metaKey) {
                                dijit._lastKeyDownNode = null ;
                                return m(e);
                            }
                        }));
                    }
                }
                return _17c;
            },
            _onShow: function() {
                this.onShow();
            },
            onShow: function() {},
            onHide: function() {},
            onClose: function() {
                return true;
            }
        });
    })();
}
if (!dojo._hasResource["dojo.string"]) {
    dojo._hasResource["dojo.string"] = true;
    dojo.provide("dojo.string");
    dojo.getObject("string", true, dojo);
    dojo.string.rep = function(str, num) {
        if (num <= 0 || !str) {
            return "";
        }
        var buf = [];
        for (; ; ) {
            if (num & 1) {
                buf.push(str);
            }
            if (!(num >>= 1)) {
                break;
            }
            str += str;
        }
        return buf.join("");
    }
    ;
    dojo.string.pad = function(text, size, ch, end) {
        if (!ch) {
            ch = "0";
        }
        var out = String(text)
          , pad = dojo.string.rep(ch, Math.ceil((size - out.length) / ch.length));
        return end ? out + pad : pad + out;
    }
    ;
    dojo.string.substitute = function(_17d, map, _17e, _17f) {
        _17f = _17f || dojo.global;
        _17e = _17e ? dojo.hitch(_17f, _17e) : function(v) {
            return v;
        }
        ;
        return _17d.replace(/\$\{([^\s\:\}]+)(?:\:([^\s\:\}]+))?\}/g, function(_180, key, _181) {
            var _182 = dojo.getObject(key, false, map);
            if (_181) {
                _182 = dojo.getObject(_181, false, _17f).call(_17f, _182, key);
            }
            return _17e(_182, key).toString();
        });
    }
    ;
    dojo.string.trim = String.prototype.trim ? dojo.trim : function(str) {
        str = str.replace(/^\s+/, "");
        for (var i = str.length - 1; i >= 0; i--) {
            if (/\S/.test(str.charAt(i))) {
                str = str.substring(0, i + 1);
                break;
            }
        }
        return str;
    }
    ;
}
if (!dojo._hasResource["dojo.date.stamp"]) {
    dojo._hasResource["dojo.date.stamp"] = true;
    dojo.provide("dojo.date.stamp");
    dojo.getObject("date.stamp", true, dojo);
    dojo.date.stamp.fromISOString = function(_183, _184) {
        if (!dojo.date.stamp._isoRegExp) {
            dojo.date.stamp._isoRegExp = /^(?:(\d{4})(?:-(\d{2})(?:-(\d{2}))?)?)?(?:T(\d{2}):(\d{2})(?::(\d{2})(.\d+)?)?((?:[+-](\d{2}):(\d{2}))|Z)?)?$/;
        }
        var _185 = dojo.date.stamp._isoRegExp.exec(_183)
          , _186 = null ;
        if (_185) {
            _185.shift();
            if (_185[1]) {
                _185[1]--;
            }
            if (_185[6]) {
                _185[6] *= 1000;
            }
            if (_184) {
                _184 = new Date(_184);
                dojo.forEach(dojo.map(["FullYear", "Month", "Date", "Hours", "Minutes", "Seconds", "Milliseconds"], function(prop) {
                    return _184["get" + prop]();
                }), function(_187, _188) {
                    _185[_188] = _185[_188] || _187;
                });
            }
            _186 = new Date(_185[0] || 1970,_185[1] || 0,_185[2] || 1,_185[3] || 0,_185[4] || 0,_185[5] || 0,_185[6] || 0);
            if (_185[0] < 100) {
                _186.setFullYear(_185[0] || 1970);
            }
            var _189 = 0
              , _18a = _185[7] && _185[7].charAt(0);
            if (_18a != "Z") {
                _189 = ((_185[8] || 0) * 60) + (Number(_185[9]) || 0);
                if (_18a != "-") {
                    _189 *= -1;
                }
            }
            if (_18a) {
                _189 -= _186.getTimezoneOffset();
            }
            if (_189) {
                _186.setTime(_186.getTime() + _189 * 60000);
            }
        }
        return _186;
    }
    ;
    dojo.date.stamp.toISOString = function(_18b, _18c) {
        var _18d = function(n) {
            return (n < 10) ? "0" + n : n;
        }
        ;
        _18c = _18c || {};
        var _18e = []
          , _18f = _18c.zulu ? "getUTC" : "get"
          , date = "";
        if (_18c.selector != "time") {
            var year = _18b[_18f + "FullYear"]();
            date = ["0000".substr((year + "").length) + year, _18d(_18b[_18f + "Month"]() + 1), _18d(_18b[_18f + "Date"]())].join("-");
        }
        _18e.push(date);
        if (_18c.selector != "date") {
            var time = [_18d(_18b[_18f + "Hours"]()), _18d(_18b[_18f + "Minutes"]()), _18d(_18b[_18f + "Seconds"]())].join(":");
            var _190 = _18b[_18f + "Milliseconds"]();
            if (_18c.milliseconds) {
                time += "." + (_190 < 100 ? "0" : "") + _18d(_190);
            }
            if (_18c.zulu) {
                time += "Z";
            } else {
                if (_18c.selector != "time") {
                    var _191 = _18b.getTimezoneOffset();
                    var _192 = Math.abs(_191);
                    time += (_191 > 0 ? "-" : "+") + _18d(Math.floor(_192 / 60)) + ":" + _18d(_192 % 60);
                }
            }
            _18e.push(time);
        }
        return _18e.join("T");
    }
    ;
}
if (!dojo._hasResource["dojo.parser"]) {
    dojo._hasResource["dojo.parser"] = true;
    dojo.provide("dojo.parser");
    new Date("X");
    dojo.parser = new function() {
        var d = dojo;
        function _193(_194) {
            if (d.isString(_194)) {
                return "string";
            }
            if (typeof _194 == "number") {
                return "number";
            }
            if (typeof _194 == "boolean") {
                return "boolean";
            }
            if (d.isFunction(_194)) {
                return "function";
            }
            if (d.isArray(_194)) {
                return "array";
            }
            if (_194 instanceof Date) {
                return "date";
            }
            if (_194 instanceof d._Url) {
                return "url";
            }
            return "object";
        }
        ;function _195(_196, type) {
            switch (type) {
            case "string":
                return _196;
            case "number":
                return _196.length ? Number(_196) : NaN;
            case "boolean":
                return typeof _196 == "boolean" ? _196 : !(_196.toLowerCase() == "false");
            case "function":
                if (d.isFunction(_196)) {
                    _196 = _196.toString();
                    _196 = d.trim(_196.substring(_196.indexOf("{") + 1, _196.length - 1));
                }
                try {
                    if (_196 === "" || _196.search(/[^\w\.]+/i) != -1) {
                        return new Function(_196);
                    } else {
                        return d.getObject(_196, false) || new Function(_196);
                    }
                } catch (e) {
                    return new Function();
                }
            case "array":
                return _196 ? _196.split(/\s*,\s*/) : [];
            case "date":
                switch (_196) {
                case "":
                    return new Date("");
                case "now":
                    return new Date();
                default:
                    return d.date.stamp.fromISOString(_196);
                }
            case "url":
                return d.baseUrl + _196;
            default:
                return d.fromJson(_196);
            }
        }
        ;var _197 = {}
          , _198 = {};
        d.connect(d, "extend", function() {
            _198 = {};
        });
        function _199(cls, _19a) {
            for (var name in cls) {
                if (name.charAt(0) == "_") {
                    continue;
                }
                if (name in _197) {
                    continue;
                }
                _19a[name] = _193(cls[name]);
            }
            return _19a;
        }
        ;function _19b(_19c, _19d) {
            var c = _198[_19c];
            if (!c) {
                var cls = d.getObject(_19c)
                  , _19e = null ;
                if (!cls) {
                    return null ;
                }
                if (!_19d) {
                    _19e = _199(cls.prototype, {});
                }
                c = {
                    cls: cls,
                    params: _19e
                };
            } else {
                if (!_19d && !c.params) {
                    c.params = _199(c.cls.prototype, {});
                }
            }
            return c;
        }
        ;this._functionFromScript = function(_19f, _1a0) {
            var _1a1 = "";
            var _1a2 = "";
            var _1a3 = (_19f.getAttribute(_1a0 + "args") || _19f.getAttribute("args"));
            if (_1a3) {
                d.forEach(_1a3.split(/\s*,\s*/), function(part, idx) {
                    _1a1 += "var " + part + " = arguments[" + idx + "]; ";
                });
            }
            var _1a4 = _19f.getAttribute("with");
            if (_1a4 && _1a4.length) {
                d.forEach(_1a4.split(/\s*,\s*/), function(part) {
                    _1a1 += "with(" + part + "){";
                    _1a2 += "}";
                });
            }
            return new Function(_1a1 + _19f.innerHTML + _1a2);
        }
        ;
        this.instantiate = function(_1a5, _1a6, args) {
            var _1a7 = []
              , _1a6 = _1a6 || {};
            args = args || {};
            var _1a8 = (args.scope || d._scopeName) + "Type"
              , _1a9 = "data-" + (args.scope || d._scopeName) + "-";
            d.forEach(_1a5, function(obj) {
                if (!obj) {
                    return;
                }
                var node, type, _1aa, _1ab, _1ac, _1ad;
                if (obj.node) {
                    node = obj.node;
                    type = obj.type;
                    _1ad = obj.fastpath;
                    _1aa = obj.clsInfo || (type && _19b(type, _1ad));
                    _1ab = _1aa && _1aa.cls;
                    _1ac = obj.scripts;
                } else {
                    node = obj;
                    type = _1a8 in _1a6 ? _1a6[_1a8] : node.getAttribute(_1a8);
                    _1aa = type && _19b(type);
                    _1ab = _1aa && _1aa.cls;
                    _1ac = (_1ab && (_1ab._noScript || _1ab.prototype._noScript) ? [] : d.query("> script[type^='dojo/']", node));
                }
                if (!_1aa) {
                    throw new Error("Could not load class '" + type);
                }
                var _1ae = {};
                if (args.defaults) {
                    d._mixin(_1ae, args.defaults);
                }
                if (obj.inherited) {
                    d._mixin(_1ae, obj.inherited);
                }
                if (_1ad) {
                    var _1af = node.getAttribute(_1a9 + "props");
                    if (_1af && _1af.length) {
                        try {
                            _1af = d.fromJson.call(args.propsThis, "{" + _1af + "}");
                            d._mixin(_1ae, _1af);
                        } catch (e) {
                            throw new Error(e.toString() + " in data-dojo-props='" + _1af + "'");
                        }
                    }
                    var _1b0 = node.getAttribute(_1a9 + "attach-point");
                    if (_1b0) {
                        _1ae.dojoAttachPoint = _1b0;
                    }
                    var _1b1 = node.getAttribute(_1a9 + "attach-event");
                    if (_1b1) {
                        _1ae.dojoAttachEvent = _1b1;
                    }
                    dojo.mixin(_1ae, _1a6);
                } else {
                    var _1b2 = node.attributes;
                    for (var name in _1aa.params) {
                        var item = name in _1a6 ? {
                            value: _1a6[name],
                            specified: true
                        } : _1b2.getNamedItem(name);
                        if (!item || (!item.specified && (!dojo.isIE || name.toLowerCase() != "value"))) {
                            continue;
                        }
                        var _1b3 = item.value;
                        switch (name) {
                        case "class":
                            _1b3 = "className" in _1a6 ? _1a6.className : node.className;
                            break;
                        case "style":
                            _1b3 = "style" in _1a6 ? _1a6.style : (node.style && node.style.cssText);
                        }
                        var _1b4 = _1aa.params[name];
                        if (typeof _1b3 == "string") {
                            _1ae[name] = _195(_1b3, _1b4);
                        } else {
                            _1ae[name] = _1b3;
                        }
                    }
                }
                var _1b5 = []
                  , _1b6 = [];
                d.forEach(_1ac, function(_1b7) {
                    node.removeChild(_1b7);
                    var _1b8 = (_1b7.getAttribute(_1a9 + "event") || _1b7.getAttribute("event"))
                      , type = _1b7.getAttribute("type")
                      , nf = d.parser._functionFromScript(_1b7, _1a9);
                    if (_1b8) {
                        if (type == "dojo/connect") {
                            _1b5.push({
                                event: _1b8,
                                func: nf
                            });
                        } else {
                            _1ae[_1b8] = nf;
                        }
                    } else {
                        _1b6.push(nf);
                    }
                });
                var _1b9 = _1ab.markupFactory || _1ab.prototype && _1ab.prototype.markupFactory;
                var _1ba = _1b9 ? _1b9(_1ae, node, _1ab) : new _1ab(_1ae,node);
                _1a7.push(_1ba);
                var _1bb = (node.getAttribute(_1a9 + "id") || node.getAttribute("jsId"));
                if (_1bb) {
                    d.setObject(_1bb, _1ba);
                }
                d.forEach(_1b5, function(_1bc) {
                    d.connect(_1ba, _1bc.event, null , _1bc.func);
                });
                d.forEach(_1b6, function(func) {
                    func.call(_1ba);
                });
            });
            if (!_1a6._started) {
                d.forEach(_1a7, function(_1bd) {
                    if (!args.noStart && _1bd && dojo.isFunction(_1bd.startup) && !_1bd._started && (!_1bd.getParent || !_1bd.getParent())) {
                        _1bd.startup();
                    }
                });
            }
            return _1a7;
        }
        ;
        this.parse = function(_1be, args) {
            var root;
            if (!args && _1be && _1be.rootNode) {
                args = _1be;
                root = args.rootNode;
            } else {
                root = _1be;
            }
            root = root ? dojo.byId(root) : dojo.body();
            args = args || {};
            var _1bf = (args.scope || d._scopeName) + "Type"
              , _1c0 = "data-" + (args.scope || d._scopeName) + "-";
            function scan(_1c1, list) {
                var _1c2 = dojo.clone(_1c1.inherited);
                dojo.forEach(["dir", "lang"], function(name) {
                    var val = _1c1.node.getAttribute(name);
                    if (val) {
                        _1c2[name] = val;
                    }
                });
                var _1c3 = _1c1.clsInfo && !_1c1.clsInfo.cls.prototype._noScript ? _1c1.scripts : null ;
                var _1c4 = (!_1c1.clsInfo || !_1c1.clsInfo.cls.prototype.stopParser) || (args && args.template);
                for (var _1c5 = _1c1.node.firstChild; _1c5; _1c5 = _1c5.nextSibling) {
                    if (_1c5.nodeType == 1) {
                        var type, _1c6 = _1c4 && _1c5.getAttribute(_1c0 + "type");
                        if (_1c6) {
                            type = _1c6;
                        } else {
                            type = _1c4 && _1c5.getAttribute(_1bf);
                        }
                        var _1c7 = _1c6 == type;
                        if (type) {
                            var _1c8 = {
                                "type": type,
                                fastpath: _1c7,
                                clsInfo: _19b(type, _1c7),
                                node: _1c5,
                                scripts: [],
                                inherited: _1c2
                            };
                            list.push(_1c8);
                            scan(_1c8, list);
                        } else {
                            if (_1c3 && _1c5.nodeName.toLowerCase() == "script") {
                                type = _1c5.getAttribute("type");
                                if (type && /^dojo\/\w/i.test(type)) {
                                    _1c3.push(_1c5);
                                }
                            } else {
                                if (_1c4) {
                                    scan({
                                        node: _1c5,
                                        inherited: _1c2
                                    }, list);
                                }
                            }
                        }
                    }
                }
            }
            ;var _1c9 = {};
            if (args && args.inherited) {
                for (var key in args.inherited) {
                    if (args.inherited[key]) {
                        _1c9[key] = args.inherited[key];
                    }
                }
            }
            var list = [];
            scan({
                node: root,
                inherited: _1c9
            }, list);
            var _1ca = args && args.template ? {
                template: true
            } : null ;
            return this.instantiate(list, _1ca, args);
        }
        ;
    }
    ();
    (function() {
        var _1cb = function() {
            if (dojo.config.parseOnLoad) {
                dojo.parser.parse();
            }
        }
        ;
        if (dojo.getObject("dijit.wai.onload") === dojo._loaders[0]) {
            dojo._loaders.splice(1, 0, _1cb);
        } else {
            dojo._loaders.unshift(_1cb);
        }
    })();
}
if (!dojo._hasResource["dojo.cache"]) {
    dojo._hasResource["dojo.cache"] = true;
    dojo.provide("dojo.cache");
    var cache = {};
    dojo.cache = function(_1cc, url, _1cd) {
        if (typeof _1cc == "string") {
            var _1ce = dojo.moduleUrl(_1cc, url);
        } else {
            _1ce = _1cc;
            _1cd = url;
        }
        var key = _1ce.toString();
        var val = _1cd;
        if (_1cd != undefined && !dojo.isString(_1cd)) {
            val = ("value" in _1cd ? _1cd.value : undefined);
        }
        var _1cf = _1cd && _1cd.sanitize ? true : false;
        if (typeof val == "string") {
            val = cache[key] = _1cf ? dojo.cache._sanitize(val) : val;
        } else {
            if (val === null ) {
                delete cache[key];
            } else {
                if (!(key in cache)) {
                    val = dojo._getText(key);
                    cache[key] = _1cf ? dojo.cache._sanitize(val) : val;
                }
                val = cache[key];
            }
        }
        return val;
    }
    ;
    dojo.cache._sanitize = function(val) {
        if (val) {
            val = val.replace(/^\s*<\?xml(\s)+version=[\'\"](\d)*.(\d)*[\'\"](\s)*\?>/im, "");
            var _1d0 = val.match(/<body[^>]*>\s*([\s\S]+)\s*<\/body>/im);
            if (_1d0) {
                val = _1d0[1];
            }
        } else {
            val = "";
        }
        return val;
    }
    ;
}
if (!dojo._hasResource["dijit._Templated"]) {
    dojo._hasResource["dijit._Templated"] = true;
    dojo.provide("dijit._Templated");
    dojo.declare("dijit._Templated", null , {
        templateString: null ,
        templatePath: null ,
        widgetsInTemplate: false,
        _skipNodeCache: false,
        _earlyTemplatedStartup: false,
        constructor: function() {
            this._attachPoints = [];
            this._attachEvents = [];
        },
        _stringRepl: function(tmpl) {
            var _1d1 = this.declaredClass
              , _1d2 = this;
            return dojo.string.substitute(tmpl, this, function(_1d3, key) {
                if (key.charAt(0) == "!") {
                    _1d3 = dojo.getObject(key.substr(1), false, _1d2);
                }
                if (typeof _1d3 == "undefined") {
                    throw new Error(_1d1 + " template:" + key);
                }
                if (_1d3 == null ) {
                    return "";
                }
                return key.charAt(0) == "!" ? _1d3 : _1d3.toString().replace(/"/g, "&quot;");
            }, this);
        },
        buildRendering: function() {
            var _1d4 = dijit._Templated.getCachedTemplate(this.templatePath, this.templateString, this._skipNodeCache);
            var node;
            if (dojo.isString(_1d4)) {
                node = dojo._toDom(this._stringRepl(_1d4));
                if (node.nodeType != 1) {
                    throw new Error("Invalid template: " + _1d4);
                }
            } else {
                node = _1d4.cloneNode(true);
            }
            this.domNode = node;
            this.inherited(arguments);
            this._attachTemplateNodes(node);
            if (this.widgetsInTemplate) {
                var cw = (this._startupWidgets = dojo.parser.parse(node, {
                    noStart: !this._earlyTemplatedStartup,
                    template: true,
                    inherited: {
                        dir: this.dir,
                        lang: this.lang
                    },
                    propsThis: this,
                    scope: "dojo"
                }));
                this._supportingWidgets = dijit.findWidgets(node);
                this._attachTemplateNodes(cw, function(n, p) {
                    return n[p];
                });
            }
            this._fillContent(this.srcNodeRef);
        },
        _fillContent: function(_1d5) {
            var dest = this.containerNode;
            if (_1d5 && dest) {
                while (_1d5.hasChildNodes()) {
                    dest.appendChild(_1d5.firstChild);
                }
            }
        },
        _attachTemplateNodes: function(_1d6, _1d7) {
            _1d7 = _1d7 || function(n, p) {
                return n.getAttribute(p);
            }
            ;
            var _1d8 = dojo.isArray(_1d6) ? _1d6 : (_1d6.all || _1d6.getElementsByTagName("*"));
            var x = dojo.isArray(_1d6) ? 0 : -1;
            for (; x < _1d8.length; x++) {
                var _1d9 = (x == -1) ? _1d6 : _1d8[x];
                if (this.widgetsInTemplate && (_1d7(_1d9, "dojoType") || _1d7(_1d9, "data-dojo-type"))) {
                    continue;
                }
                var _1da = _1d7(_1d9, "dojoAttachPoint") || _1d7(_1d9, "data-dojo-attach-point");
                if (_1da) {
                    var _1db, _1dc = _1da.split(/\s*,\s*/);
                    while ((_1db = _1dc.shift()) ) {
                        if (dojo.isArray(this[_1db])) {
                            this[_1db].push(_1d9);
                        } else {
                            this[_1db] = _1d9;
                        }
                        this._attachPoints.push(_1db);
                    }
                }
                var _1dd = _1d7(_1d9, "dojoAttachEvent") || _1d7(_1d9, "data-dojo-attach-event");
                if (_1dd) {
                    var _1de, _1df = _1dd.split(/\s*,\s*/);
                    var trim = dojo.trim;
                    while ((_1de = _1df.shift()) ) {
                        if (_1de) {
                            var _1e0 = null ;
                            if (_1de.indexOf(":") != -1) {
                                var _1e1 = _1de.split(":");
                                _1de = trim(_1e1[0]);
                                _1e0 = trim(_1e1[1]);
                            } else {
                                _1de = trim(_1de);
                            }
                            if (!_1e0) {
                                _1e0 = _1de;
                            }
                            this._attachEvents.push(this.connect(_1d9, _1de, _1e0));
                        }
                    }
                }
                var role = _1d7(_1d9, "waiRole");
                if (role) {
                    dijit.setWaiRole(_1d9, role);
                }
                var _1e2 = _1d7(_1d9, "waiState");
                if (_1e2) {
                    dojo.forEach(_1e2.split(/\s*,\s*/), function(_1e3) {
                        if (_1e3.indexOf("-") != -1) {
                            var pair = _1e3.split("-");
                            dijit.setWaiState(_1d9, pair[0], pair[1]);
                        }
                    });
                }
            }
        },
        startup: function() {
            dojo.forEach(this._startupWidgets, function(w) {
                if (w && !w._started && w.startup) {
                    w.startup();
                }
            });
            this.inherited(arguments);
        },
        destroyRendering: function() {
            dojo.forEach(this._attachPoints, function(_1e4) {
                delete this[_1e4];
            }, this);
            this._attachPoints = [];
            dojo.forEach(this._attachEvents, this.disconnect, this);
            this._attachEvents = [];
            this.inherited(arguments);
        }
    });
    dijit._Templated._templateCache = {};
    dijit._Templated.getCachedTemplate = function(_1e5, _1e6, _1e7) {
        var _1e8 = dijit._Templated._templateCache;
        var key = _1e6 || _1e5;
        var _1e9 = _1e8[key];
        if (_1e9) {
            try {
                if (!_1e9.ownerDocument || _1e9.ownerDocument == dojo.doc) {
                    return _1e9;
                }
            } catch (e) {}
            dojo.destroy(_1e9);
        }
        if (!_1e6) {
            _1e6 = dojo.cache(_1e5, {
                sanitize: true
            });
        }
        _1e6 = dojo.string.trim(_1e6);
        if (_1e7 || _1e6.match(/\$\{([^\}]+)\}/g)) {
            return ( _1e8[key] = _1e6) ;
        } else {
            var node = dojo._toDom(_1e6);
            if (node.nodeType != 1) {
                throw new Error("Invalid template: " + _1e6);
            }
            return ( _1e8[key] = node) ;
        }
    }
    ;
    if (dojo.isIE) {
        dojo.addOnWindowUnload(function() {
            var _1ea = dijit._Templated._templateCache;
            for (var key in _1ea) {
                var _1eb = _1ea[key];
                if (typeof _1eb == "object") {
                    dojo.destroy(_1eb);
                }
                delete _1ea[key];
            }
        });
    }
    dojo.extend(dijit._Widget, {
        dojoAttachEvent: "",
        dojoAttachPoint: "",
        waiRole: "",
        waiState: ""
    });
}
if (!dojo._hasResource["dijit._CssStateMixin"]) {
    dojo._hasResource["dijit._CssStateMixin"] = true;
    dojo.provide("dijit._CssStateMixin");
    dojo.declare("dijit._CssStateMixin", [], {
        cssStateNodes: {},
        hovering: false,
        active: false,
        _applyAttributes: function() {
            this.inherited(arguments);
            dojo.forEach(["onmouseenter", "onmouseleave", "onmousedown"], function(e) {
                this.connect(this.domNode, e, "_cssMouseEvent");
            }, this);
            dojo.forEach(["disabled", "readOnly", "checked", "selected", "focused", "state", "hovering", "active"], function(attr) {
                this.watch(attr, dojo.hitch(this, "_setStateClass"));
            }, this);
            for (var ap in this.cssStateNodes) {
                this._trackMouseState(this[ap], this.cssStateNodes[ap]);
            }
            this._setStateClass();
        },
        _cssMouseEvent: function(_1ec) {
            if (!this.disabled) {
                switch (_1ec.type) {
                case "mouseenter":
                case "mouseover":
                    this._set("hovering", true);
                    this._set("active", this._mouseDown);
                    break;
                case "mouseleave":
                case "mouseout":
                    this._set("hovering", false);
                    this._set("active", false);
                    break;
                case "mousedown":
                    this._set("active", true);
                    this._mouseDown = true;
                    var _1ed = this.connect(dojo.body(), "onmouseup", function() {
                        this._mouseDown = false;
                        this._set("active", false);
                        this.disconnect(_1ed);
                    });
                    break;
                }
            }
        },
        _setStateClass: function() {
            var _1ee = this.baseClass.split(" ");
            function _1ef(_1f0) {
                _1ee = _1ee.concat(dojo.map(_1ee, function(c) {
                    return c + _1f0;
                }), "dijit" + _1f0);
            }
            ;if (!this.isLeftToRight()) {
                _1ef("Rtl");
            }
            if (this.checked) {
                _1ef("Checked");
            }
            if (this.state) {
                _1ef(this.state);
            }
            if (this.selected) {
                _1ef("Selected");
            }
            if (this.disabled) {
                _1ef("Disabled");
            } else {
                if (this.readOnly) {
                    _1ef("ReadOnly");
                } else {
                    if (this.active) {
                        _1ef("Active");
                    } else {
                        if (this.hovering) {
                            _1ef("Hover");
                        }
                    }
                }
            }
            if (this._focused) {
                _1ef("Focused");
            }
            var tn = this.stateNode || this.domNode
              , _1f1 = {};
            dojo.forEach(tn.className.split(" "), function(c) {
                _1f1[c] = true;
            });
            if ("_stateClasses" in this) {
                dojo.forEach(this._stateClasses, function(c) {
                    delete _1f1[c];
                });
            }
            dojo.forEach(_1ee, function(c) {
                _1f1[c] = true;
            });
            var _1f2 = [];
            for (var c in _1f1) {
                _1f2.push(c);
            }
            tn.className = _1f2.join(" ");
            this._stateClasses = _1ee;
        },
        _trackMouseState: function(node, _1f3) {
            var _1f4 = false
              , _1f5 = false
              , _1f6 = false;
            var self = this
              , cn = dojo.hitch(this, "connect", node);
            function _1f7() {
                var _1f8 = ("disabled" in self && self.disabled) || ("readonly" in self && self.readonly);
                dojo.toggleClass(node, _1f3 + "Hover", _1f4 && !_1f5 && !_1f8);
                dojo.toggleClass(node, _1f3 + "Active", _1f5 && !_1f8);
                dojo.toggleClass(node, _1f3 + "Focused", _1f6 && !_1f8);
            }
            ;cn("onmouseenter", function() {
                _1f4 = true;
                _1f7();
            });
            cn("onmouseleave", function() {
                _1f4 = false;
                _1f5 = false;
                _1f7();
            });
            cn("onmousedown", function() {
                _1f5 = true;
                _1f7();
            });
            cn("onmouseup", function() {
                _1f5 = false;
                _1f7();
            });
            cn("onfocus", function() {
                _1f6 = true;
                _1f7();
            });
            cn("onblur", function() {
                _1f6 = false;
                _1f7();
            });
            this.watch("disabled", _1f7);
            this.watch("readOnly", _1f7);
        }
    });
}
if (!dojo._hasResource["dijit.form._FormMixin"]) {
    dojo._hasResource["dijit.form._FormMixin"] = true;
    dojo.provide("dijit.form._FormMixin");
    dojo.declare("dijit.form._FormMixin", null , {
        state: "",
        reset: function() {
            dojo.forEach(this.getDescendants(), function(_1f9) {
                if (_1f9.reset) {
                    _1f9.reset();
                }
            });
        },
        validate: function() {
            var _1fa = false;
            return dojo.every(dojo.map(this.getDescendants(), function(_1fb) {
                _1fb._hasBeenBlurred = true;
                var _1fc = _1fb.disabled || !_1fb.validate || _1fb.validate();
                if (!_1fc && !_1fa) {
                    dojo.window.scrollIntoView(_1fb.containerNode || _1fb.domNode);
                    _1fb.focus();
                    _1fa = true;
                }
                return _1fc;
            }), function(item) {
                return item;
            });
        },
        setValues: function(val) {
            dojo.deprecated(this.declaredClass + "::setValues() is deprecated. Use set('value', val) instead.", "", "2.0");
            return this.set("value", val);
        },
        _setValueAttr: function(obj) {
            var map = {};
            dojo.forEach(this.getDescendants(), function(_1fd) {
                if (!_1fd.name) {
                    return;
                }
                var _1fe = map[_1fd.name] || (map[_1fd.name] = []);
                _1fe.push(_1fd);
            });
            for (var name in map) {
                if (!map.hasOwnProperty(name)) {
                    continue;
                }
                var _1ff = map[name]
                  , _200 = dojo.getObject(name, false, obj);
                if (_200 === undefined) {
                    continue;
                }
                if (!dojo.isArray(_200)) {
                    _200 = [_200];
                }
                if (typeof _1ff[0].checked == "boolean") {
                    dojo.forEach(_1ff, function(w, i) {
                        w.set("value", dojo.indexOf(_200, w.value) != -1);
                    });
                } else {
                    if (_1ff[0].multiple) {
                        _1ff[0].set("value", _200);
                    } else {
                        dojo.forEach(_1ff, function(w, i) {
                            w.set("value", _200[i]);
                        });
                    }
                }
            }
        },
        getValues: function() {
            dojo.deprecated(this.declaredClass + "::getValues() is deprecated. Use get('value') instead.", "", "2.0");
            return this.get("value");
        },
        _getValueAttr: function() {
            var obj = {};
            dojo.forEach(this.getDescendants(), function(_201) {
                var name = _201.name;
                if (!name || _201.disabled) {
                    return;
                }
                var _202 = _201.get("value");
                if (typeof _201.checked == "boolean") {
                    if (/Radio/.test(_201.declaredClass)) {
                        if (_202 !== false) {
                            dojo.setObject(name, _202, obj);
                        } else {
                            _202 = dojo.getObject(name, false, obj);
                            if (_202 === undefined) {
                                dojo.setObject(name, null , obj);
                            }
                        }
                    } else {
                        var ary = dojo.getObject(name, false, obj);
                        if (!ary) {
                            ary = [];
                            dojo.setObject(name, ary, obj);
                        }
                        if (_202 !== false) {
                            ary.push(_202);
                        }
                    }
                } else {
                    var prev = dojo.getObject(name, false, obj);
                    if (typeof prev != "undefined") {
                        if (dojo.isArray(prev)) {
                            prev.push(_202);
                        } else {
                            dojo.setObject(name, [prev, _202], obj);
                        }
                    } else {
                        dojo.setObject(name, _202, obj);
                    }
                }
            });
            return obj;
        },
        isValid: function() {
            return this.state == "";
        },
        onValidStateChange: function(_203) {},
        _getState: function() {
            var _204 = dojo.map(this._descendants, function(w) {
                return w.get("state") || "";
            });
            return dojo.indexOf(_204, "Error") >= 0 ? "Error" : dojo.indexOf(_204, "Incomplete") >= 0 ? "Incomplete" : "";
        },
        disconnectChildren: function() {
            dojo.forEach(this._childConnections || [], dojo.hitch(this, "disconnect"));
            dojo.forEach(this._childWatches || [], function(w) {
                w.unwatch();
            });
        },
        connectChildren: function(_205) {
            var _206 = this;
            this.disconnectChildren();
            this._descendants = this.getDescendants();
            var set = _205 ? function(name, val) {
                _206[name] = val;
            }
             : dojo.hitch(this, "_set");
            set("value", this.get("value"));
            set("state", this._getState());
            var _207 = (this._childConnections = [])
              , _208 = (this._childWatches = []);
            dojo.forEach(dojo.filter(this._descendants, function(item) {
                return item.validate;
            }), function(_209) {
                dojo.forEach(["state", "disabled"], function(attr) {
                    _208.push(_209.watch(attr, function(attr, _20a, _20b) {
                        _206.set("state", _206._getState());
                    }));
                });
            });
            var _20c = function() {
                if (_206._onChangeDelayTimer) {
                    clearTimeout(_206._onChangeDelayTimer);
                }
                _206._onChangeDelayTimer = setTimeout(function() {
                    delete _206._onChangeDelayTimer;
                    _206._set("value", _206.get("value"));
                }, 10);
            }
            ;
            dojo.forEach(dojo.filter(this._descendants, function(item) {
                return item.onChange;
            }), function(_20d) {
                _207.push(_206.connect(_20d, "onChange", _20c));
                _208.push(_20d.watch("disabled", _20c));
            });
        },
        startup: function() {
            this.inherited(arguments);
            this.connectChildren(true);
            this.watch("state", function(attr, _20e, _20f) {
                this.onValidStateChange(_20f == "");
            });
        },
        destroy: function() {
            this.disconnectChildren();
            this.inherited(arguments);
        }
    });
}
if (!dojo._hasResource["dijit._DialogMixin"]) {
    dojo._hasResource["dijit._DialogMixin"] = true;
    dojo.provide("dijit._DialogMixin");
    dojo.declare("dijit._DialogMixin", null , {
        attributeMap: dijit._Widget.prototype.attributeMap,
        execute: function(_210) {},
        onCancel: function() {},
        onExecute: function() {},
        _onSubmit: function() {
            this.onExecute();
            this.execute(this.get("value"));
        },
        _getFocusItems: function() {
            var _211 = dijit._getTabNavigable(this.containerNode);
            this._firstFocusItem = _211.lowest || _211.first || this.closeButtonNode || this.domNode;
            this._lastFocusItem = _211.last || _211.highest || this._firstFocusItem;
        }
    });
}
if (!dojo._hasResource["dijit.DialogUnderlay"]) {
    dojo._hasResource["dijit.DialogUnderlay"] = true;
    dojo.provide("dijit.DialogUnderlay");
    dojo.declare("dijit.DialogUnderlay", [dijit._Widget, dijit._Templated], {
        templateString: "<div class='dijitDialogUnderlayWrapper'><div class='dijitDialogUnderlay' dojoAttachPoint='node'></div></div>",
        dialogId: "",
        "class": "",
        attributeMap: {
            id: "domNode"
        },
        _setDialogIdAttr: function(id) {
            dojo.attr(this.node, "id", id + "_underlay");
            this._set("dialogId", id);
        },
        _setClassAttr: function(_212) {
            this.node.className = "dijitDialogUnderlay " + _212;
            this._set("class", _212);
        },
        postCreate: function() {
            dojo.body().appendChild(this.domNode);
        },
        layout: function() {
            var is = this.node.style
              , os = this.domNode.style;
            os.display = "none";
            var _213 = dojo.window.getBox();
            os.top = _213.t + "px";
            os.left = _213.l + "px";
            is.width = _213.w + "px";
            is.height = _213.h + "px";
            os.display = "block";
        },
        show: function() {
            this.domNode.style.display = "block";
            this.layout();
            this.bgIframe = new dijit.BackgroundIframe(this.domNode);
        },
        hide: function() {
            this.bgIframe.destroy();
            delete this.bgIframe;
            this.domNode.style.display = "none";
        }
    });
}
if (!dojo._hasResource["dijit._Contained"]) {
    dojo._hasResource["dijit._Contained"] = true;
    dojo.provide("dijit._Contained");
    dojo.declare("dijit._Contained", null , {
        getParent: function() {
            var _214 = dijit.getEnclosingWidget(this.domNode.parentNode);
            return _214 && _214.isContainer ? _214 : null ;
        },
        _getSibling: function(_215) {
            var node = this.domNode;
            do {
                node = node[_215 + "Sibling"];
            } while (node && node.nodeType != 1);return node && dijit.byNode(node);
        },
        getPreviousSibling: function() {
            return this._getSibling("previous");
        },
        getNextSibling: function() {
            return this._getSibling("next");
        },
        getIndexInParent: function() {
            var p = this.getParent();
            if (!p || !p.getIndexOfChild) {
                return -1;
            }
            return p.getIndexOfChild(this);
        }
    });
}
if (!dojo._hasResource["dijit._Container"]) {
    dojo._hasResource["dijit._Container"] = true;
    dojo.provide("dijit._Container");
    dojo.declare("dijit._Container", null , {
        isContainer: true,
        buildRendering: function() {
            this.inherited(arguments);
            if (!this.containerNode) {
                this.containerNode = this.domNode;
            }
        },
        addChild: function(_216, _217) {
            var _218 = this.containerNode;
            if (_217 && typeof _217 == "number") {
                var _219 = this.getChildren();
                if (_219 && _219.length >= _217) {
                    _218 = _219[_217 - 1].domNode;
                    _217 = "after";
                }
            }
            dojo.place(_216.domNode, _218, _217);
            if (this._started && !_216._started) {
                _216.startup();
            }
        },
        removeChild: function(_21a) {
            if (typeof _21a == "number") {
                _21a = this.getChildren()[_21a];
            }
            if (_21a) {
                var node = _21a.domNode;
                if (node && node.parentNode) {
                    node.parentNode.removeChild(node);
                }
            }
        },
        hasChildren: function() {
            return this.getChildren().length > 0;
        },
        destroyDescendants: function(_21b) {
            dojo.forEach(this.getChildren(), function(_21c) {
                _21c.destroyRecursive(_21b);
            });
        },
        _getSiblingOfChild: function(_21d, dir) {
            var node = _21d.domNode
              , _21e = (dir > 0 ? "nextSibling" : "previousSibling");
            do {
                node = node[_21e];
            } while (node && (node.nodeType != 1 || !dijit.byNode(node)));return node && dijit.byNode(node);
        },
        getIndexOfChild: function(_21f) {
            return dojo.indexOf(this.getChildren(), _21f);
        },
        startup: function() {
            if (this._started) {
                return;
            }
            dojo.forEach(this.getChildren(), function(_220) {
                _220.startup();
            });
            this.inherited(arguments);
        }
    });
}
if (!dojo._hasResource["dijit.layout._LayoutWidget"]) {
    dojo._hasResource["dijit.layout._LayoutWidget"] = true;
    dojo.provide("dijit.layout._LayoutWidget");
    dojo.declare("dijit.layout._LayoutWidget", [dijit._Widget, dijit._Container, dijit._Contained], {
        baseClass: "dijitLayoutContainer",
        isLayoutContainer: true,
        buildRendering: function() {
            this.inherited(arguments);
            dojo.addClass(this.domNode, "dijitContainer");
        },
        startup: function() {
            if (this._started) {
                return;
            }
            this.inherited(arguments);
            var _221 = this.getParent && this.getParent();
            if (!(_221 && _221.isLayoutContainer)) {
                this.resize();
                this.connect(dojo.isIE ? this.domNode : dojo.global, "onresize", function() {
                    this.resize();
                });
            }
        },
        resize: function(_222, _223) {
            var node = this.domNode;
            if (_222) {
                dojo.marginBox(node, _222);
                if (_222.t) {
                    node.style.top = _222.t + "px";
                }
                if (_222.l) {
                    node.style.left = _222.l + "px";
                }
            }
            var mb = _223 || {};
            dojo.mixin(mb, _222 || {});
            if (!("h" in mb) || !("w" in mb)) {
                mb = dojo.mixin(dojo.marginBox(node), mb);
            }
            var cs = dojo.getComputedStyle(node);
            var me = dojo._getMarginExtents(node, cs);
            var be = dojo._getBorderExtents(node, cs);
            var bb = (this._borderBox = {
                w: mb.w - (me.w + be.w),
                h: mb.h - (me.h + be.h)
            });
            var pe = dojo._getPadExtents(node, cs);
            this._contentBox = {
                l: dojo._toPixelValue(node, cs.paddingLeft),
                t: dojo._toPixelValue(node, cs.paddingTop),
                w: bb.w - pe.w,
                h: bb.h - pe.h
            };
            this.layout();
        },
        layout: function() {},
        _setupChild: function(_224) {
            var cls = this.baseClass + "-child " + (_224.baseClass ? this.baseClass + "-" + _224.baseClass : "");
            dojo.addClass(_224.domNode, cls);
        },
        addChild: function(_225, _226) {
            this.inherited(arguments);
            if (this._started) {
                this._setupChild(_225);
            }
        },
        removeChild: function(_227) {
            var cls = this.baseClass + "-child" + (_227.baseClass ? " " + this.baseClass + "-" + _227.baseClass : "");
            dojo.removeClass(_227.domNode, cls);
            this.inherited(arguments);
        }
    });
    dijit.layout.marginBox2contentBox = function(node, mb) {
        var cs = dojo.getComputedStyle(node);
        var me = dojo._getMarginExtents(node, cs);
        var pb = dojo._getPadBorderExtents(node, cs);
        return {
            l: dojo._toPixelValue(node, cs.paddingLeft),
            t: dojo._toPixelValue(node, cs.paddingTop),
            w: mb.w - (me.w + pb.w),
            h: mb.h - (me.h + pb.h)
        };
    }
    ;
    (function() {
        var _228 = function(word) {
            return word.substring(0, 1).toUpperCase() + word.substring(1);
        }
        ;
        var size = function(_229, dim) {
            var _22a = _229.resize ? _229.resize(dim) : dojo.marginBox(_229.domNode, dim);
            if (_22a) {
                dojo.mixin(_229, _22a);
            } else {
                dojo.mixin(_229, dojo.marginBox(_229.domNode));
                dojo.mixin(_229, dim);
            }
        }
        ;
        dijit.layout.layoutChildren = function(_22b, dim, _22c, _22d, _22e) {
            dim = dojo.mixin({}, dim);
            dojo.addClass(_22b, "dijitLayoutContainer");
            _22c = dojo.filter(_22c, function(item) {
                return item.region != "center" && item.layoutAlign != "client";
            }).concat(dojo.filter(_22c, function(item) {
                return item.region == "center" || item.layoutAlign == "client";
            }));
            dojo.forEach(_22c, function(_22f) {
                var elm = _22f.domNode
                  , pos = (_22f.region || _22f.layoutAlign);
                var _230 = elm.style;
                _230.left = dim.l + "px";
                _230.top = dim.t + "px";
                _230.position = "absolute";
                dojo.addClass(elm, "dijitAlign" + _228(pos));
                var _231 = {};
                if (_22d && _22d == _22f.id) {
                    _231[_22f.region == "top" || _22f.region == "bottom" ? "h" : "w"] = _22e;
                }
                if (pos == "top" || pos == "bottom") {
                    _231.w = dim.w;
                    size(_22f, _231);
                    dim.h -= _22f.h;
                    if (pos == "top") {
                        dim.t += _22f.h;
                    } else {
                        _230.top = dim.t + dim.h + "px";
                    }
                } else {
                    if (pos == "left" || pos == "right") {
                        _231.h = dim.h;
                        size(_22f, _231);
                        dim.w -= _22f.w;
                        if (pos == "left") {
                            dim.l += _22f.w;
                        } else {
                            _230.left = dim.l + dim.w + "px";
                        }
                    } else {
                        if (pos == "client" || pos == "center") {
                            size(_22f, dim);
                        }
                    }
                }
            });
        }
        ;
    })();
}
if (!dojo._hasResource["dijit.layout._ContentPaneResizeMixin"]) {
    dojo._hasResource["dijit.layout._ContentPaneResizeMixin"] = true;
    dojo.provide("dijit.layout._ContentPaneResizeMixin");
    dojo.declare("dijit.layout._ContentPaneResizeMixin", null , {
        doLayout: true,
        isContainer: true,
        isLayoutContainer: true,
        _startChildren: function() {
            dojo.forEach(this.getChildren(), function(_232) {
                _232.startup();
                _232._started = true;
            });
        },
        startup: function() {
            if (this._started) {
                return;
            }
            var _233 = dijit._Contained.prototype.getParent.call(this);
            this._childOfLayoutWidget = _233 && _233.isLayoutContainer;
            this._needLayout = !this._childOfLayoutWidget;
            this.inherited(arguments);
            this._startChildren();
            if (this._isShown()) {
                this._onShow();
            }
            if (!this._childOfLayoutWidget) {
                this.connect(dojo.isIE ? this.domNode : dojo.global, "onresize", function() {
                    this._needLayout = !this._childOfLayoutWidget;
                    this.resize();
                });
            }
        },
        _checkIfSingleChild: function() {
            var _234 = dojo.query("> *", this.containerNode).filter(function(node) {
                return node.tagName !== "SCRIPT";
            })
              , _235 = _234.filter(function(node) {
                return dojo.hasAttr(node, "data-dojo-type") || dojo.hasAttr(node, "dojoType") || dojo.hasAttr(node, "widgetId");
            })
              , _236 = dojo.filter(_235.map(dijit.byNode), function(_237) {
                return _237 && _237.domNode && _237.resize;
            });
            if (_234.length == _235.length && _236.length == 1) {
                this._singleChild = _236[0];
            } else {
                delete this._singleChild;
            }
            dojo.toggleClass(this.containerNode, this.baseClass + "SingleChild", !!this._singleChild);
        },
        resize: function(_238, _239) {
            if (!this._wasShown && this.open !== false) {
                this._onShow();
            }
            this._resizeCalled = true;
            this._scheduleLayout(_238, _239);
        },
        _scheduleLayout: function(_23a, _23b) {
            if (this._isShown()) {
                this._layout(_23a, _23b);
            } else {
                this._needLayout = true;
                this._changeSize = _23a;
                this._resultSize = _23b;
            }
        },
        _layout: function(_23c, _23d) {
            if (_23c) {
                dojo.marginBox(this.domNode, _23c);
            }
            var cn = this.containerNode;
            if (cn === this.domNode) {
                var mb = _23d || {};
                dojo.mixin(mb, _23c || {});
                if (!("h" in mb) || !("w" in mb)) {
                    mb = dojo.mixin(dojo.marginBox(cn), mb);
                }
                this._contentBox = dijit.layout.marginBox2contentBox(cn, mb);
            } else {
                this._contentBox = dojo.contentBox(cn);
            }
            this._layoutChildren();
            delete this._needLayout;
        },
        _layoutChildren: function() {
            if (this.doLayout) {
                this._checkIfSingleChild();
            }
            if (this._singleChild && this._singleChild.resize) {
                var cb = this._contentBox || dojo.contentBox(this.containerNode);
                this._singleChild.resize({
                    w: cb.w,
                    h: cb.h
                });
            } else {
                dojo.forEach(this.getChildren(), function(_23e) {
                    if (_23e.resize) {
                        _23e.resize();
                    }
                });
            }
        },
        _isShown: function() {
            if (this._childOfLayoutWidget) {
                if (this._resizeCalled && "open" in this) {
                    return this.open;
                }
                return this._resizeCalled;
            } else {
                if ("open" in this) {
                    return this.open;
                } else {
                    var node = this.domNode
                      , _23f = this.domNode.parentNode;
                    return (node.style.display != "none") && (node.style.visibility != "hidden") && !dojo.hasClass(node, "dijitHidden") && _23f && _23f.style && (_23f.style.display != "none");
                }
            }
        },
        _onShow: function() {
            if (this._needLayout) {
                this._layout(this._changeSize, this._resultSize);
            }
            this.inherited(arguments);
            this._wasShown = true;
        }
    });
}
if (!dojo._hasResource["dojo.html"]) {
    dojo._hasResource["dojo.html"] = true;
    dojo.provide("dojo.html");
    dojo.getObject("html", true, dojo);
    (function() {
        var _240 = 0
          , d = dojo;
        dojo.html._secureForInnerHtml = function(cont) {
            return cont.replace(/(?:\s*<!DOCTYPE\s[^>]+>|<title[^>]*>[\s\S]*?<\/title>)/ig, "");
        }
        ;
        dojo.html._emptyNode = dojo.empty;
        dojo.html._setNodeContent = function(node, cont) {
            d.empty(node);
            if (cont) {
                if (typeof cont == "string") {
                    cont = d._toDom(cont, node.ownerDocument);
                }
                if (!cont.nodeType && d.isArrayLike(cont)) {
                    for (var _241 = cont.length, i = 0; i < cont.length; i = _241 == cont.length ? i + 1 : 0) {
                        d.place(cont[i], node, "last");
                    }
                } else {
                    d.place(cont, node, "last");
                }
            }
            return node;
        }
        ;
        dojo.declare("dojo.html._ContentSetter", null , {
            node: "",
            content: "",
            id: "",
            cleanContent: false,
            extractContent: false,
            parseContent: false,
            parserScope: dojo._scopeName,
            startup: true,
            constructor: function(_242, node) {
                dojo.mixin(this, _242 || {});
                node = this.node = dojo.byId(this.node || node);
                if (!this.id) {
                    this.id = ["Setter", (node) ? node.id || node.tagName : "", _240++].join("_");
                }
            },
            set: function(cont, _243) {
                if (undefined !== cont) {
                    this.content = cont;
                }
                if (_243) {
                    this._mixin(_243);
                }
                this.onBegin();
                this.setContent();
                this.onEnd();
                return this.node;
            },
            setContent: function() {
                var node = this.node;
                if (!node) {
                    throw new Error(this.declaredClass + ": setContent given no node");
                }
                try {
                    node = dojo.html._setNodeContent(node, this.content);
                } catch (e) {
                    var _244 = this.onContentError(e);
                    try {
                        node.innerHTML = _244;
                    } catch (e) {
                        console.error("Fatal " + this.declaredClass + ".setContent could not change content due to " + e.message, e);
                    }
                }
                this.node = node;
            },
            empty: function() {
                if (this.parseResults && this.parseResults.length) {
                    dojo.forEach(this.parseResults, function(w) {
                        if (w.destroy) {
                            w.destroy();
                        }
                    });
                    delete this.parseResults;
                }
                dojo.html._emptyNode(this.node);
            },
            onBegin: function() {
                var cont = this.content;
                if (dojo.isString(cont)) {
                    if (this.cleanContent) {
                        cont = dojo.html._secureForInnerHtml(cont);
                    }
                    if (this.extractContent) {
                        var _245 = cont.match(/<body[^>]*>\s*([\s\S]+)\s*<\/body>/im);
                        if (_245) {
                            cont = _245[1];
                        }
                    }
                }
                this.empty();
                this.content = cont;
                return this.node;
            },
            onEnd: function() {
                if (this.parseContent) {
                    this._parse();
                }
                return this.node;
            },
            tearDown: function() {
                delete this.parseResults;
                delete this.node;
                delete this.content;
            },
            onContentError: function(err) {
                return "Error occured setting content: " + err;
            },
            _mixin: function(_246) {
                var _247 = {}, key;
                for (key in _246) {
                    if (key in _247) {
                        continue;
                    }
                    this[key] = _246[key];
                }
            },
            _parse: function() {
                var _248 = this.node;
                try {
                    var _249 = {};
                    dojo.forEach(["dir", "lang", "textDir"], function(name) {
                        if (this[name]) {
                            _249[name] = this[name];
                        }
                    }, this);
                    this.parseResults = dojo.parser.parse({
                        rootNode: _248,
                        noStart: !this.startup,
                        inherited: _249,
                        scope: this.parserScope
                    });
                } catch (e) {
                    this._onError("Content", e, "Error parsing in _ContentSetter#" + this.id);
                }
            },
            _onError: function(type, err, _24a) {
                var _24b = this["on" + type + "Error"].call(this, err);
                if (_24a) {
                    console.error(_24a, err);
                } else {
                    if (_24b) {
                        dojo.html._setNodeContent(this.node, _24b, true);
                    }
                }
            }
        });
        dojo.html.set = function(node, cont, _24c) {
            if (undefined == cont) {
                console.warn("dojo.html.set: no cont argument provided, using empty string");
                cont = "";
            }
            if (!_24c) {
                return dojo.html._setNodeContent(node, cont, true);
            } else {
                var op = new dojo.html._ContentSetter(dojo.mixin(_24c, {
                    content: cont,
                    node: node
                }));
                return op.set();
            }
        }
        ;
    })();
}
if (!dojo._hasResource["dojo.i18n"]) {
    dojo._hasResource["dojo.i18n"] = true;
    dojo.provide("dojo.i18n");
    dojo.getObject("i18n", true, dojo);
    dojo.i18n.getLocalization = dojo.i18n.getLocalization || function(_24d, _24e, _24f) {
        _24f = dojo.i18n.normalizeLocale(_24f);
        var _250 = _24f.split("-");
        var _251 = [_24d, "nls", _24e].join(".");
        var _252 = dojo._loadedModules[_251];
        if (_252) {
            var _253;
            for (var i = _250.length; i > 0; i--) {
                var loc = _250.slice(0, i).join("_");
                if (_252[loc]) {
                    _253 = _252[loc];
                    break;
                }
            }
            if (!_253) {
                _253 = _252.ROOT;
            }
            if (_253) {
                var _254 = function() {}
                ;
                _254.prototype = _253;
                return new _254();
            }
        }
        throw new Error("Bundle not found: " + _24e + " in " + _24d + " , locale=" + _24f);
    }
    ;
    dojo.i18n.normalizeLocale = function(_255) {
        var _256 = _255 ? _255.toLowerCase() : dojo.locale;
        if (_256 == "root") {
            _256 = "ROOT";
        }
        return _256;
    }
    ;
    dojo.i18n._requireLocalization = function(_257, _258, _259, _25a) {
        var _25b = dojo.i18n.normalizeLocale(_259);
        var _25c = [_257, "nls", _258].join(".");
        var _25d = "";
        if (_25a) {
            var _25e = _25a.split(",");
            for (var i = 0; i < _25e.length; i++) {
                if (_25b["indexOf"](_25e[i]) == 0) {
                    if (_25e[i].length > _25d.length) {
                        _25d = _25e[i];
                    }
                }
            }
            if (!_25d) {
                _25d = "ROOT";
            }
        }
        var _25f = _25a ? _25d : _25b;
        var _260 = dojo._loadedModules[_25c];
        var _261 = null ;
        if (_260) {
            if (dojo.config.localizationComplete && _260._built) {
                return;
            }
            var _262 = _25f.replace(/-/g, "_");
            var _263 = _25c + "." + _262;
            _261 = dojo._loadedModules[_263];
        }
        if (!_261) {
            _260 = dojo["provide"](_25c);
            var syms = dojo._getModuleSymbols(_257);
            var _264 = syms.concat("nls").join("/");
            var _265;
            dojo.i18n._searchLocalePath(_25f, _25a, function(loc) {
                var _266 = loc.replace(/-/g, "_");
                var _267 = _25c + "." + _266;
                var _268 = false;
                if (!dojo._loadedModules[_267]) {
                    dojo["provide"](_267);
                    var _269 = [_264];
                    if (loc != "ROOT") {
                        _269.push(loc);
                    }
                    _269.push(_258);
                    var _26a = _269.join("/") + ".js";
                    _268 = dojo._loadPath(_26a, null , function(hash) {
                        hash = hash.root || hash;
                        var _26b = function() {}
                        ;
                        _26b.prototype = _265;
                        _260[_266] = new _26b();
                        for (var j in hash) {
                            _260[_266][j] = hash[j];
                        }
                    });
                } else {
                    _268 = true;
                }
                if (_268 && _260[_266]) {
                    _265 = _260[_266];
                } else {
                    _260[_266] = _265;
                }
                if (_25a) {
                    return true;
                }
            });
        }
        if (_25a && _25b != _25d) {
            _260[_25b.replace(/-/g, "_")] = _260[_25d.replace(/-/g, "_")];
        }
    }
    ;
    (function() {
        var _26c = dojo.config.extraLocale;
        if (_26c) {
            if (!_26c instanceof Array) {
                _26c = [_26c];
            }
            var req = dojo.i18n._requireLocalization;
            dojo.i18n._requireLocalization = function(m, b, _26d, _26e) {
                req(m, b, _26d, _26e);
                if (_26d) {
                    return;
                }
                for (var i = 0; i < _26c.length; i++) {
                    req(m, b, _26c[i], _26e);
                }
            }
            ;
        }
    })();
    dojo.i18n._searchLocalePath = function(_26f, down, _270) {
        _26f = dojo.i18n.normalizeLocale(_26f);
        var _271 = _26f.split("-");
        var _272 = [];
        for (var i = _271.length; i > 0; i--) {
            _272.push(_271.slice(0, i).join("-"));
        }
        _272.push(false);
        if (down) {
            _272.reverse();
        }
        for (var j = _272.length - 1; j >= 0; j--) {
            var loc = _272[j] || "ROOT";
            var stop = _270(loc);
            if (stop) {
                break;
            }
        }
    }
    ;
    dojo.i18n._preloadLocalizations = function(_273, _274) {
        function _275(_276) {
            _276 = dojo.i18n.normalizeLocale(_276);
            dojo.i18n._searchLocalePath(_276, true, function(loc) {
                for (var i = 0; i < _274.length; i++) {
                    if (_274[i] == loc) {
                        dojo["require"](_273 + "_" + loc);
                        return true;
                    }
                }
                return false;
            });
        }
        ;_275();
        var _277 = dojo.config.extraLocale || [];
        for (var i = 0; i < _277.length; i++) {
            _275(_277[i]);
        }
    }
    ;
}
if (!dojo._hasResource["dijit.layout.ContentPane"]) {
    dojo._hasResource["dijit.layout.ContentPane"] = true;
    dojo.provide("dijit.layout.ContentPane");
    dojo.declare("dijit.layout.ContentPane", [dijit._Widget, dijit.layout._ContentPaneResizeMixin], {
        href: "",
        extractContent: false,
        parseOnLoad: true,
        parserScope: dojo._scopeName,
        preventCache: false,
        preload: false,
        refreshOnShow: false,
        loadingMessage: "<span class='dijitContentPaneLoading'>${loadingState}</span>",
        errorMessage: "<span class='dijitContentPaneError'>${errorState}</span>",
        isLoaded: false,
        baseClass: "dijitContentPane",
        ioArgs: {},
        onLoadDeferred: null ,
        attributeMap: dojo.delegate(dijit._Widget.prototype.attributeMap, {
            title: []
        }),
        stopParser: true,
        template: false,
        create: function(_278, _279) {
            if ((!_278 || !_278.template) && _279 && !("href" in _278) && !("content" in _278)) {
                var df = dojo.doc.createDocumentFragment();
                _279 = dojo.byId(_279);
                while (_279.firstChild) {
                    df.appendChild(_279.firstChild);
                }
                _278 = dojo.delegate(_278, {
                    content: df
                });
            }
            this.inherited(arguments, [_278, _279]);
        },
        postMixInProperties: function() {
            this.inherited(arguments);
            var _27a = dojo.i18n.getLocalization("dijit", "loading", this.lang);
            this.loadingMessage = dojo.string.substitute(this.loadingMessage, _27a);
            this.errorMessage = dojo.string.substitute(this.errorMessage, _27a);
        },
        buildRendering: function() {
            this.inherited(arguments);
            if (!this.containerNode) {
                this.containerNode = this.domNode;
            }
            this.domNode.title = "";
            if (!dojo.attr(this.domNode, "role")) {
                dijit.setWaiRole(this.domNode, "group");
            }
        },
        _startChildren: function() {
            this.inherited(arguments);
            if (this._contentSetter) {
                dojo.forEach(this._contentSetter.parseResults, function(obj) {
                    if (!obj._started && !obj._destroyed && dojo.isFunction(obj.startup)) {
                        obj.startup();
                        obj._started = true;
                    }
                }, this);
            }
        },
        setHref: function(href) {
            dojo.deprecated("dijit.layout.ContentPane.setHref() is deprecated. Use set('href', ...) instead.", "", "2.0");
            return this.set("href", href);
        },
        _setHrefAttr: function(href) {
            this.cancel();
            this.onLoadDeferred = new dojo.Deferred(dojo.hitch(this, "cancel"));
            this.onLoadDeferred.addCallback(dojo.hitch(this, "onLoad"));
            this._set("href", href);
            if (this.preload || (this._created && this._isShown())) {
                this._load();
            } else {
                this._hrefChanged = true;
            }
            return this.onLoadDeferred;
        },
        setContent: function(data) {
            dojo.deprecated("dijit.layout.ContentPane.setContent() is deprecated.  Use set('content', ...) instead.", "", "2.0");
            this.set("content", data);
        },
        _setContentAttr: function(data) {
            this._set("href", "");
            this.cancel();
            this.onLoadDeferred = new dojo.Deferred(dojo.hitch(this, "cancel"));
            if (this._created) {
                this.onLoadDeferred.addCallback(dojo.hitch(this, "onLoad"));
            }
            this._setContent(data || "");
            this._isDownloaded = false;
            return this.onLoadDeferred;
        },
        _getContentAttr: function() {
            return this.containerNode.innerHTML;
        },
        cancel: function() {
            if (this._xhrDfd && (this._xhrDfd.fired == -1)) {
                this._xhrDfd.cancel();
            }
            delete this._xhrDfd;
            this.onLoadDeferred = null ;
        },
        uninitialize: function() {
            if (this._beingDestroyed) {
                this.cancel();
            }
            this.inherited(arguments);
        },
        destroyRecursive: function(_27b) {
            if (this._beingDestroyed) {
                return;
            }
            this.inherited(arguments);
        },
        _onShow: function() {
            this.inherited(arguments);
            if (this.href) {
                if (!this._xhrDfd && (!this.isLoaded || this._hrefChanged || this.refreshOnShow)) {
                    return this.refresh();
                }
            }
        },
        refresh: function() {
            this.cancel();
            this.onLoadDeferred = new dojo.Deferred(dojo.hitch(this, "cancel"));
            this.onLoadDeferred.addCallback(dojo.hitch(this, "onLoad"));
            this._load();
            return this.onLoadDeferred;
        },
        _load: function() {
            this._setContent(this.onDownloadStart(), true);
            var self = this;
            var _27c = {
                preventCache: (this.preventCache || this.refreshOnShow),
                url: this.href,
                handleAs: "text"
            };
            if (dojo.isObject(this.ioArgs)) {
                dojo.mixin(_27c, this.ioArgs);
            }
            var hand = (this._xhrDfd = (this.ioMethod || dojo.xhrGet)(_27c));
            hand.addCallback(function(html) {
                try {
                    self._isDownloaded = true;
                    self._setContent(html, false);
                    self.onDownloadEnd();
                } catch (err) {
                    self._onError("Content", err);
                }
                delete self._xhrDfd;
                return html;
            });
            hand.addErrback(function(err) {
                if (!hand.canceled) {
                    self._onError("Download", err);
                }
                delete self._xhrDfd;
                return err;
            });
            delete this._hrefChanged;
        },
        _onLoadHandler: function(data) {
            this._set("isLoaded", true);
            try {
                this.onLoadDeferred.callback(data);
            } catch (e) {
                console.error("Error " + this.widgetId + " running custom onLoad code: " + e.message);
            }
        },
        _onUnloadHandler: function() {
            this._set("isLoaded", false);
            try {
                this.onUnload();
            } catch (e) {
                console.error("Error " + this.widgetId + " running custom onUnload code: " + e.message);
            }
        },
        destroyDescendants: function() {
            if (this.isLoaded) {
                this._onUnloadHandler();
            }
            var _27d = this._contentSetter;
            dojo.forEach(this.getChildren(), function(_27e) {
                if (_27e.destroyRecursive) {
                    _27e.destroyRecursive();
                }
            });
            if (_27d) {
                dojo.forEach(_27d.parseResults, function(_27f) {
                    if (_27f.destroyRecursive && _27f.domNode && _27f.domNode.parentNode == dojo.body()) {
                        _27f.destroyRecursive();
                    }
                });
                delete _27d.parseResults;
            }
            dojo.html._emptyNode(this.containerNode);
            delete this._singleChild;
        },
        _setContent: function(cont, _280) {
            this.destroyDescendants();
            var _281 = this._contentSetter;
            if (!(_281 && _281 instanceof dojo.html._ContentSetter)) {
                _281 = this._contentSetter = new dojo.html._ContentSetter({
                    node: this.containerNode,
                    _onError: dojo.hitch(this, this._onError),
                    onContentError: dojo.hitch(this, function(e) {
                        var _282 = this.onContentError(e);
                        try {
                            this.containerNode.innerHTML = _282;
                        } catch (e) {
                            console.error("Fatal " + this.id + " could not change content due to " + e.message, e);
                        }
                    })
                });
            }
            var _283 = dojo.mixin({
                cleanContent: this.cleanContent,
                extractContent: this.extractContent,
                parseContent: this.parseOnLoad,
                parserScope: this.parserScope,
                startup: false,
                dir: this.dir,
                lang: this.lang
            }, this._contentSetterParams || {});
            _281.set((dojo.isObject(cont) && cont.domNode) ? cont.domNode : cont, _283);
            delete this._contentSetterParams;
            if (this.doLayout) {
                this._checkIfSingleChild();
            }
            if (!_280) {
                if (this._started) {
                    this._startChildren();
                    this._scheduleLayout();
                }
                this._onLoadHandler(cont);
            }
        },
        _onError: function(type, err, _284) {
            this.onLoadDeferred.errback(err);
            var _285 = this["on" + type + "Error"].call(this, err);
            if (_284) {
                console.error(_284, err);
            } else {
                if (_285) {
                    this._setContent(_285, true);
                }
            }
        },
        onLoad: function(data) {},
        onUnload: function() {},
        onDownloadStart: function() {
            return this.loadingMessage;
        },
        onContentError: function(_286) {},
        onDownloadError: function(_287) {
            return this.errorMessage;
        },
        onDownloadEnd: function() {}
    });
}
if (!dojo._hasResource["dijit.TooltipDialog"]) {
    dojo._hasResource["dijit.TooltipDialog"] = true;
    dojo.provide("dijit.TooltipDialog");
    dojo.declare("dijit.TooltipDialog", [dijit.layout.ContentPane, dijit._Templated, dijit.form._FormMixin, dijit._DialogMixin], {
        title: "",
        doLayout: false,
        autofocus: true,
        baseClass: "dijitTooltipDialog",
        _firstFocusItem: null ,
        _lastFocusItem: null ,
        templateString: dojo.cache("dijit", "templates/TooltipDialog.html", "<div role=\"presentation\" tabIndex=\"-1\">\r\n\t<div class=\"dijitTooltipContainer\" role=\"presentation\">\r\n\t\t<div class =\"dijitTooltipContents dijitTooltipFocusNode\" dojoAttachPoint=\"containerNode\" role=\"dialog\"></div>\r\n\t</div>\r\n\t<div class=\"dijitTooltipConnector\" role=\"presentation\"></div>\r\n</div>\r\n"),
        _setTitleAttr: function(_288) {
            this.containerNode.title = _288;
            this._set("title", _288);
        },
        postCreate: function() {
            this.inherited(arguments);
            this.connect(this.containerNode, "onkeypress", "_onKey");
        },
        orient: function(node, _289, _28a) {
            var newC = "dijitTooltipAB" + (_28a.charAt(1) == "L" ? "Left" : "Right") + " dijitTooltip" + (_28a.charAt(0) == "T" ? "Below" : "Above");
            dojo.replaceClass(this.domNode, newC, this._currentOrientClass || "");
            this._currentOrientClass = newC;
        },
        focus: function() {
            this._getFocusItems(this.containerNode);
            dijit.focus(this._firstFocusItem);
        },
        onOpen: function(pos) {
            this.orient(this.domNode, pos.aroundCorner, pos.corner);
            this._onShow();
        },
        onClose: function() {
            this.onHide();
        },
        _onKey: function(evt) {
            var node = evt.target;
            var dk = dojo.keys;
            if (evt.charOrCode === dk.TAB) {
                this._getFocusItems(this.containerNode);
            }
            var _28b = (this._firstFocusItem == this._lastFocusItem);
            if (evt.charOrCode == dk.ESCAPE) {
                setTimeout(dojo.hitch(this, "onCancel"), 0);
                dojo.stopEvent(evt);
            } else {
                if (node == this._firstFocusItem && evt.shiftKey && evt.charOrCode === dk.TAB) {
                    if (!_28b) {
                        dijit.focus(this._lastFocusItem);
                    }
                    dojo.stopEvent(evt);
                } else {
                    if (node == this._lastFocusItem && evt.charOrCode === dk.TAB && !evt.shiftKey) {
                        if (!_28b) {
                            dijit.focus(this._firstFocusItem);
                        }
                        dojo.stopEvent(evt);
                    } else {
                        if (evt.charOrCode === dk.TAB) {
                            evt.stopPropagation();
                        }
                    }
                }
            }
        }
    });
}
if (!dojo._hasResource["dijit.Dialog"]) {
    dojo._hasResource["dijit.Dialog"] = true;
    dojo.provide("dijit.Dialog");
    dojo.declare("dijit._DialogBase", [dijit._Templated, dijit.form._FormMixin, dijit._DialogMixin, dijit._CssStateMixin], {
        templateString: dojo.cache("dijit", "templates/Dialog.html", "<div class=\"dijitDialog\" role=\"dialog\" aria-labelledby=\"${id}_title\">\r\n\t<div dojoAttachPoint=\"titleBar\" class=\"dijitDialogTitleBar\">\r\n\t<span dojoAttachPoint=\"titleNode\" class=\"dijitDialogTitle\" id=\"${id}_title\"></span>\r\n\t<span dojoAttachPoint=\"closeButtonNode\" class=\"dijitDialogCloseIcon\" dojoAttachEvent=\"ondijitclick: onCancel\" title=\"${buttonCancel}\" role=\"button\" tabIndex=\"-1\">\r\n\t\t<span dojoAttachPoint=\"closeText\" class=\"closeText\" title=\"${buttonCancel}\">x</span>\r\n\t</span>\r\n\t</div>\r\n\t\t<div dojoAttachPoint=\"containerNode\" class=\"dijitDialogPaneContent\"></div>\r\n</div>\r\n"),
        baseClass: "dijitDialog",
        cssStateNodes: {
            closeButtonNode: "dijitDialogCloseIcon"
        },
        attributeMap: dojo.delegate(dijit._Widget.prototype.attributeMap, {
            title: [{
                node: "titleNode",
                type: "innerHTML"
            }, {
                node: "titleBar",
                type: "attribute"
            }],
            "aria-describedby": ""
        }),
        open: false,
        duration: dijit.defaultDuration,
        refocus: true,
        autofocus: true,
        _firstFocusItem: null ,
        _lastFocusItem: null ,
        doLayout: false,
        draggable: true,
        "aria-describedby": "",
        postMixInProperties: function() {
            var _28c = dojo.i18n.getLocalization("dijit", "common");
            dojo.mixin(this, _28c);
            this.inherited(arguments);
        },
        postCreate: function() {
            dojo.style(this.domNode, {
                display: "none",
                position: "absolute"
            });
            dojo.body().appendChild(this.domNode);
            this.inherited(arguments);
            this.connect(this, "onExecute", "hide");
            this.connect(this, "onCancel", "hide");
            this._modalconnects = [];
        },
        onLoad: function() {
            this._position();
            if (this.autofocus && dijit._DialogLevelManager.isTop(this)) {
                this._getFocusItems(this.domNode);
                dijit.focus(this._firstFocusItem);
            }
            this.inherited(arguments);
        },
        _endDrag: function(e) {
            if (e && e.node && e.node === this.domNode) {
                this._relativePosition = dojo.position(e.node);
            }
        },
        _setup: function() {
            var node = this.domNode;
            if (this.titleBar && this.draggable) {
                this._moveable = (dojo.isIE == 6) ? new dojo.dnd.TimedMoveable(node,{
                    handle: this.titleBar
                }) : new dojo.dnd.Moveable(node,{
                    handle: this.titleBar,
                    timeout: 0
                });
                this._dndListener = dojo.subscribe("/dnd/move/stop", this, "_endDrag");
            } else {
                dojo.addClass(node, "dijitDialogFixed");
            }
            this.underlayAttrs = {
                dialogId: this.id,
                "class": dojo.map(this["class"].split(/\s/), function(s) {
                    return s + "_underlay";
                }).join(" ")
            };
        },
        _size: function() {
            this._checkIfSingleChild();
            if (this._singleChild) {
                if (this._singleChildOriginalStyle) {
                    this._singleChild.domNode.style.cssText = this._singleChildOriginalStyle;
                }
                delete this._singleChildOriginalStyle;
            } else {
                dojo.style(this.containerNode, {
                    width: "auto",
                    height: "auto"
                });
            }
            var mb = dojo._getMarginSize(this.domNode);
            var _28d = dojo.window.getBox();
            if (mb.w >= _28d.w || mb.h >= _28d.h) {
                var w = Math.min(mb.w, Math.floor(_28d.w * 0.75))
                  , h = Math.min(mb.h, Math.floor(_28d.h * 0.75));
                if (this._singleChild && this._singleChild.resize) {
                    this._singleChildOriginalStyle = this._singleChild.domNode.style.cssText;
                    this._singleChild.resize({
                        w: w,
                        h: h
                    });
                } else {
                    dojo.style(this.containerNode, {
                        width: w + "px",
                        height: h + "px",
                        overflow: "auto",
                        position: "relative"
                    });
                }
            } else {
                if (this._singleChild && this._singleChild.resize) {
                    this._singleChild.resize();
                }
            }
        },
        _position: function() {
            if (!dojo.hasClass(dojo.body(), "dojoMove")) {
                var node = this.domNode
                  , _28e = dojo.window.getBox()
                  , p = this._relativePosition
                  , bb = p ? null  : dojo._getBorderBox(node)
                  , l = Math.floor(_28e.l + (p ? p.x : (_28e.w - bb.w) / 2))
                  , t = Math.floor(_28e.t + (p ? p.y : (_28e.h - bb.h) / 2));
                dojo.style(node, {
                    left: l + "px",
                    top: t + "px"
                });
            }
        },
        _onKey: function(evt) {
            if (evt.charOrCode) {
                var dk = dojo.keys;
                var node = evt.target;
                if (evt.charOrCode === dk.TAB) {
                    this._getFocusItems(this.domNode);
                }
                var _28f = (this._firstFocusItem == this._lastFocusItem);
                if (node == this._firstFocusItem && evt.shiftKey && evt.charOrCode === dk.TAB) {
                    if (!_28f) {
                        dijit.focus(this._lastFocusItem);
                    }
                    dojo.stopEvent(evt);
                } else {
                    if (node == this._lastFocusItem && evt.charOrCode === dk.TAB && !evt.shiftKey) {
                        if (!_28f) {
                            dijit.focus(this._firstFocusItem);
                        }
                        dojo.stopEvent(evt);
                    } else {
                        while (node) {
                            if (node == this.domNode || dojo.hasClass(node, "dijitPopup")) {
                                if (evt.charOrCode == dk.ESCAPE) {
                                    this.onCancel();
                                } else {
                                    return;
                                }
                            }
                            node = node.parentNode;
                        }
                        if (evt.charOrCode !== dk.TAB) {
                            dojo.stopEvent(evt);
                        } else {
                            if (!dojo.isOpera) {
                                try {
                                    this._firstFocusItem.focus();
                                } catch (e) {}
                            }
                        }
                    }
                }
            }
        },
        show: function() {
            if (this.open) {
                return;
            }
            if (!this._started) {
                this.startup();
            }
            if (!this._alreadyInitialized) {
                this._setup();
                this._alreadyInitialized = true;
            }
            if (this._fadeOutDeferred) {
                this._fadeOutDeferred.cancel();
            }
            this._modalconnects.push(dojo.connect(window, "onscroll", this, "layout"));
            this._modalconnects.push(dojo.connect(window, "onresize", this, function() {
                var _290 = dojo.window.getBox();
                if (!this._oldViewport || _290.h != this._oldViewport.h || _290.w != this._oldViewport.w) {
                    this.layout();
                    this._oldViewport = _290;
                }
            }));
            this._modalconnects.push(dojo.connect(this.domNode, "onkeypress", this, "_onKey"));
            dojo.style(this.domNode, {
                opacity: 0,
                display: ""
            });
            this._set("open", true);
            this._onShow();
            this._size();
            this._position();
            var _291;
            this._fadeInDeferred = new dojo.Deferred(dojo.hitch(this, function() {
                _291.stop();
                delete this._fadeInDeferred;
            }));
            _291 = dojo.fadeIn({
                node: this.domNode,
                duration: this.duration,
                beforeBegin: dojo.hitch(this, function() {
                    dijit._DialogLevelManager.show(this, this.underlayAttrs);
                }),
                onEnd: dojo.hitch(this, function() {
                    if (this.autofocus && dijit._DialogLevelManager.isTop(this)) {
                        this._getFocusItems(this.domNode);
                        dijit.focus(this._firstFocusItem);
                    }
                    this._fadeInDeferred.callback(true);
                    delete this._fadeInDeferred;
                })
            }).play();
            return this._fadeInDeferred;
        },
        hide: function() {
            if (!this._alreadyInitialized) {
                return;
            }
            if (this._fadeInDeferred) {
                this._fadeInDeferred.cancel();
            }
            var _292;
            this._fadeOutDeferred = new dojo.Deferred(dojo.hitch(this, function() {
                _292.stop();
                delete this._fadeOutDeferred;
            }));
            _292 = dojo.fadeOut({
                node: this.domNode,
                duration: this.duration,
                onEnd: dojo.hitch(this, function() {
                    this.domNode.style.display = "none";
                    dijit._DialogLevelManager.hide(this);
                    this.onHide();
                    this._fadeOutDeferred.callback(true);
                    delete this._fadeOutDeferred;
                })
            }).play();
            if (this._scrollConnected) {
                this._scrollConnected = false;
            }
            dojo.forEach(this._modalconnects, dojo.disconnect);
            this._modalconnects = [];
            if (this._relativePosition) {
                delete this._relativePosition;
            }
            this._set("open", false);
            return this._fadeOutDeferred;
        },
        layout: function() {
            if (this.domNode.style.display != "none") {
                if (dijit._underlay) {
                    dijit._underlay.layout();
                }
                this._position();
            }
        },
        destroy: function() {
            if (this._fadeInDeferred) {
                this._fadeInDeferred.cancel();
            }
            if (this._fadeOutDeferred) {
                this._fadeOutDeferred.cancel();
            }
            if (this._moveable) {
                this._moveable.destroy();
            }
            if (this._dndListener) {
                dojo.unsubscribe(this._dndListener);
            }
            dojo.forEach(this._modalconnects, dojo.disconnect);
            dijit._DialogLevelManager.hide(this);
            this.inherited(arguments);
        }
    });
    dojo.declare("dijit.Dialog", [dijit.layout.ContentPane, dijit._DialogBase], {});
    dijit._DialogLevelManager = {
        show: function(_293, _294) {
            var ds = dijit._dialogStack;
            ds[ds.length - 1].focus = dijit.getFocus(_293);
            var _295 = dijit._underlay;
            if (!_295 || _295._destroyed) {
                _295 = dijit._underlay = new dijit.DialogUnderlay(_294);
            } else {
                _295.set(_293.underlayAttrs);
            }
            var _296 = ds[ds.length - 1].dialog ? ds[ds.length - 1].zIndex + 2 : 950;
            if (ds.length == 1) {
                _295.show();
            }
            dojo.style(dijit._underlay.domNode, "zIndex", _296 - 1);
            dojo.style(_293.domNode, "zIndex", _296);
            ds.push({
                dialog: _293,
                underlayAttrs: _294,
                zIndex: _296
            });
        },
        hide: function(_297) {
            var ds = dijit._dialogStack;
            if (ds[ds.length - 1].dialog == _297) {
                ds.pop();
                var pd = ds[ds.length - 1];
                if (ds.length == 1) {
                    if (!dijit._underlay._destroyed) {
                        dijit._underlay.hide();
                    }
                } else {
                    dojo.style(dijit._underlay.domNode, "zIndex", pd.zIndex - 1);
                    dijit._underlay.set(pd.underlayAttrs);
                }
                if (_297.refocus) {
                    var _298 = pd.focus;
                    if (!_298 || (pd.dialog && !dojo.isDescendant(_298.node, pd.dialog.domNode))) {
                        pd.dialog._getFocusItems(pd.dialog.domNode);
                        _298 = pd.dialog._firstFocusItem;
                    }
                    try {
                        dijit.focus(_298);
                    } catch (e) {}
                }
            } else {
                var idx = dojo.indexOf(dojo.map(ds, function(elem) {
                    return elem.dialog;
                }), _297);
                if (idx != -1) {
                    ds.splice(idx, 1);
                }
            }
        },
        isTop: function(_299) {
            var ds = dijit._dialogStack;
            return ds[ds.length - 1].dialog == _299;
        }
    };
    dijit._dialogStack = [{
        dialog: null ,
        focus: null ,
        underlayAttrs: null 
    }];
}
if (!dojo._hasResource["dojo.regexp"]) {
    dojo._hasResource["dojo.regexp"] = true;
    dojo.provide("dojo.regexp");
    dojo.getObject("regexp", true, dojo);
    dojo.regexp.escapeString = function(str, _29a) {
        return str.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, function(ch) {
            if (_29a && _29a.indexOf(ch) != -1) {
                return ch;
            }
            return "\\" + ch;
        });
    }
    ;
    dojo.regexp.buildGroupRE = function(arr, re, _29b) {
        if (!(arr instanceof Array)) {
            return re(arr);
        }
        var b = [];
        for (var i = 0; i < arr.length; i++) {
            b.push(re(arr[i]));
        }
        return dojo.regexp.group(b.join("|"), _29b);
    }
    ;
    dojo.regexp.group = function(_29c, _29d) {
        return "(" + (_29d ? "?:" : "") + _29c + ")";
    }
    ;
}
if (!dojo._hasResource["dojo.cookie"]) {
    dojo._hasResource["dojo.cookie"] = true;
    dojo.provide("dojo.cookie");
    dojo.cookie = function(name, _29e, _29f) {
        var c = document.cookie;
        if (arguments.length == 1) {
            var _2a0 = c.match(new RegExp("(?:^|; )" + dojo.regexp.escapeString(name) + "=([^;]*)"));
            return _2a0 ? decodeURIComponent(_2a0[1]) : undefined;
        } else {
            _29f = _29f || {};
            var exp = _29f.expires;
            if (typeof exp == "number") {
                var d = new Date();
                d.setTime(d.getTime() + exp * 24 * 60 * 60 * 1000);
                exp = _29f.expires = d;
            }
            if (exp && exp.toUTCString) {
                _29f.expires = exp.toUTCString();
            }
            _29e = encodeURIComponent(_29e);
            var _2a1 = name + "=" + _29e, _2a2;
            for (_2a2 in _29f) {
                _2a1 += "; " + _2a2;
                var _2a3 = _29f[_2a2];
                if (_2a3 !== true) {
                    _2a1 += "=" + _2a3;
                }
            }
            document.cookie = _2a1;
        }
    }
    ;
    dojo.cookie.isSupported = function() {
        if (!("cookieEnabled" in navigator)) {
            this("__djCookieTest__", "CookiesAllowed");
            navigator.cookieEnabled = this("__djCookieTest__") == "CookiesAllowed";
            if (navigator.cookieEnabled) {
                this("__djCookieTest__", "", {
                    expires: -1
                });
            }
        }
        return navigator.cookieEnabled;
    }
    ;
}
if (!dojo._hasResource["smartdot.xhrSessionPatch"]) {
    dojo._hasResource["smartdot.xhrSessionPatch"] = true;
    dojo.provide("smartdot.xhrSessionPatch");
    (function() {
        var _2a4 = dojo._defaultXhr || dojo.xhr;
        dojo[dojo._defaultXhr ? "_defaultXhr" : "xhr"] = function(_2a5, args, _2a6) {
            var _2a7 = function() {
                _2a4.call(dojo, _2a5, args, _2a6);
            }
            ;
            var _2a8 = new dojo.Deferred();
            _2a8.ioArgs = args;
            args._load = args.load;
            args._error = args.error;
            args.load = function(_2a9, _2aa) {
                var _2ab = function() {
                    var _2ac, _2ad;
                    _2ac = dojo.connect(_2af, "onCancel", function() {
                        dojo.disconnect(_2ac);
                        dojo.disconnect(_2ad);
                        var _2ae = "xhr错误：会话已经过期";
                        _2a8.reject(_2ae);
                        if (args._error) {
                            args._error(_2ae, _2aa);
                        }
                    });
                    _2ad = dojo.connect(_2af, "onLogin", function() {
                        dojo.disconnect(_2ac);
                        dojo.disconnect(_2ad);
                        _2a7();
                    });
                    _2af.show();
                }
                ;
                _2a8.ioArgs = _2aa;
                var _2b0 = _2aa.xhr.getResponseHeader("LoginType");
                if (_2b0 === null  || _2b0 === "" || _2b0 === "2") {
                    _2a8.resolve(_2a9);
                    if (args._load) {
                        args._load(_2a9, _2aa);
                    }
                } else {
                    if (_2b0 === "1") {
                        var _2b1 = "xhr错误：无权限访问远程资源";
                        _2a8.reject(_2b1);
                        if (args._error) {
                            args._error(_2b1, _2aa);
                        } else {
                            alert(_2b1);
                        }
                    } else {
                        _2ab();
                    }
                }
            }
            ;
            _2a7();
            return _2a8;
        }
        ;
        var _2af;
        dojo.addOnLoad(function() {
            _2af = new dijit.Dialog({
                title: "会话已经过期，请您重新登陆",
                content: "<div style=\"text-align:center;padding:10px;\">用户名：<input id=\"_login_username\" name=\"Username\" value=\"\" size=\"14\"><br>密　码：<input id=\"_login_password\" name=\"Password\" value=\"\" type=\"password\" size=\"14\"><br><br><input type=\"button\" value=\"登录\" id=\"_login_go\"><input type=\"button\" value=\"取消\" id=\"_login_cancel\"></div>",
                style: "width:220px"
            });
            var _2b2 = dojo.connect(_2af, "onShow", function() {
                dojo.disconnect(_2b2);
                var user = dojo.byId("_login_username");
                var pass = dojo.byId("_login_password");
                user.value = dojo.cookie("myusername") || "";
                pass.value = dojo.cookie("pwd") || "";
                dojo.connect(user, "keypress", function(evt) {
                    if (evt.keyCode == 13) {
                        pass.focus();
                        pass.select();
                    }
                });
                dojo.connect(dojo.byId("_login_password"), "keypress", function(evt) {
                    if (evt.keyCode == 13) {
                        dojo.byId("_login_go").click();
                    }
                });
                dojo.connect(dojo.byId("_login_cancel"), "click", function() {
                    _2af.onCancel();
                });
                dojo.connect(dojo.byId("_login_go"), "click", function() {
                    _2a4.call(dojo, "POST", {
                        url: "/names.nsf/?login",
                        content: {
                            "username": user.value,
                            "password": pass.value,
                            "redirectto": "/indishare/indidomcfg.nsf/pgshowusername_PA_?openpage"
                        },
                        load: function(data, _2b3) {
                            if (_2b3.xhr.getResponseHeader("LoginFlag") === "1" && dojo.trim(data.toLowerCase()) !== "anonymous") {
                                _2af.hide();
                                _2af.onLogin();
                            } else {
                                alert("用户名或者密码错，请重试");
                                pass.select();
                            }
                        }
                    }, true);
                });
            });
        });
    })();
}
if (!dojo._hasResource["smartdot.crossDomainXHR"]) {
    dojo._hasResource["smartdot.crossDomainXHR"] = true;
    dojo.provide("smartdot.crossDomainXHR");
    (function() {
        function _2b4(url) {
            if (!url.match(/^\w*:\/\//)) {
                return true;
            }
            var root = window.location.href.match(/^.*?\/\/.*?\//)[0];
            return url.substring(0, root.length).toLowerCase() == root.toLowerCase();
        }
        ;var _2b5 = [];
        var _2b6 = false;
        var _2b7 = dojo._defaultXhr || dojo.xhr;
        dojo._xdXhr = dojo[dojo._defaultXhr ? "_defaultXhr" : "xhr"] = function(_2b8, args, _2b9) {
            if (!_2b4(args.url)) {
                if (!_2b6) {
                    var _2ba = "/xsp/proxy/BasicProxy/";
                    args.url = _2ba + args.url.replace(":", "");
                    _2b6 = true;
                    var dfr = _2b7.call(dojo, _2b8, args, _2b9);
                    dfr.addBoth(function() {
                        _2b6 = false;
                        if (_2b5.length !== 0) {
                            var arg = _2b5.pop();
                            dojo._xdXhr(arg[0], arg[1], arg[2]).addCallbacks(function(data) {
                                arg[3].resolve(data);
                            }, function(data) {
                                arg[3].reject(data);
                            });
                        }
                    });
                    return dfr;
                } else {
                    var _2bb = new dojo.Deferred();
                    _2bb.ioArgs = args;
                    _2b5.push([_2b8, args, _2b9, _2bb]);
                    return _2bb;
                }
            } else {
                return _2b7.call(dojo, _2b8, args, _2b9);
            }
        }
        ;
    })();
}
if (!dojo._hasResource["smartdot.IframeDialog"]) {
    dojo._hasResource["smartdot.IframeDialog"] = true;
    dojo.provide("smartdot.IframeDialog");
    dojo.declare("smartdot.IframeDialog", dijit.Dialog, {
        _src: "about:blank",
        setSrc: function(str) {
            !this.refreshOnShow && this._reset();
            this.src = str;
            this.frameNode.src = str;
            return this;
        },
        onShow: function() {
            dojo.style(this.domNode, {
                filter: ""
            });
            if (this.refreshOnShow) {
                this.frameNode.src = this.src;
            }
        },
        hide: function() {
            this.inherited(arguments);
            this.onHide();
        },
        onHide: function() {},
        _reset: function() {
            dojo.style(this.msgNode, {
                display: ""
            });
            this.containerNode.style.cssText = "";
            dojo.style(this.frameNode, {
                width: "auto",
                height: "auto",
                visibility: "hidden",
                position: "absolute"
            });
            this.frameNode.src = this.src = this._src;
        },
        postCreate: function() {
            this.inherited(arguments);
            dojo.style(this.containerNode, this.contentStyle);
            this.frameNode = dojo.create("iframe", {
                src: this.src || this._src,
                frameborder: "0",
                scrolling: "no"
            }, this.containerNode);
            this.frameNode.contentWindow.$$Dialog = this;
            dojo.style(this.frameNode, {
                visibility: "hidden",
                position: "absolute"
            });
            this.msgNode = dojo.create("div", {
                innerHTML: this.loadingMessage,
                className: "dialog-loading-message"
            }, this.containerNode);
            var dlg = this;
            if (this.frameNode.addEventListener) {
                this.frameNode.onload = function() {
                    if (this.src != this._src) {
                        dojo.style(dlg.msgNode, "display", "none");
                        dojo.style(dlg.frameNode, {
                            visibility: "",
                            position: "relative"
                        });
                        dlg._resizeFrame();
                        dlg._size();
                        dlg._position();
                        dojo.query(this.contentWindow.document.body).addClass("iframe-dialog-content");
                    }
                }
                ;
            } else {
                this.frameNode.attachEvent("onload", dojo.hitch(this.frameNode, function() {
                    if (this.src != this._src) {
                        dojo.style(dlg.msgNode, "display", "none");
                        dojo.style(dlg.frameNode, {
                            visibility: "",
                            position: "relative"
                        });
                        dlg._resizeFrame();
                        dlg._size();
                        dlg._position();
                        dojo.query(this.contentWindow.document.body).addClass("iframe-dialog-content");
                    }
                }));
            }
            if (this.refreshOnShow) {
                dojo.connect(this, "hide", this, function() {
                    setTimeout(dojo.hitch(this, this._reset), this.duration);
                });
            }
        },
        _resizeFrame: function() {
            var _2bc = this.frameNode;
            var _2bd = _2bc.contentDocument || _2bc.contentWindow.document;
            _2bc.style.width = "auto";
            _2bc.style.height = "auto";
            var _2be = this.width || Math.max(_2bd.body.scrollWidth, _2bd.documentElement.scrollWidth) + "px";
            var _2bf = this.height || Math.max(_2bd.body.scrollHeight, _2bd.documentElement.scrollHeight) + "px";
            _2bc.style.width = _2be;
            _2bc.style.height = _2bf;
        }
    });
}
if (!dojo._hasResource["dijit.form._FormWidget"]) {
    dojo._hasResource["dijit.form._FormWidget"] = true;
    dojo.provide("dijit.form._FormWidget");
    dojo.declare("dijit.form._FormWidget", [dijit._Widget, dijit._Templated, dijit._CssStateMixin], {
        name: "",
        alt: "",
        value: "",
        type: "text",
        tabIndex: "0",
        disabled: false,
        intermediateChanges: false,
        scrollOnFocus: true,
        attributeMap: dojo.delegate(dijit._Widget.prototype.attributeMap, {
            value: "focusNode",
            id: "focusNode",
            tabIndex: "focusNode",
            alt: "focusNode",
            title: "focusNode"
        }),
        postMixInProperties: function() {
            this.nameAttrSetting = this.name ? ("name=\"" + this.name.replace(/'/g, "&quot;") + "\"") : "";
            this.inherited(arguments);
        },
        postCreate: function() {
            this.inherited(arguments);
            this.connect(this.domNode, "onmousedown", "_onMouseDown");
        },
        _setDisabledAttr: function(_2c0) {
            this._set("disabled", _2c0);
            dojo.attr(this.focusNode, "disabled", _2c0);
            if (this.valueNode) {
                dojo.attr(this.valueNode, "disabled", _2c0);
            }
            dijit.setWaiState(this.focusNode, "disabled", _2c0);
            if (_2c0) {
                this._set("hovering", false);
                this._set("active", false);
                var _2c1 = "tabIndex" in this.attributeMap ? this.attributeMap.tabIndex : "focusNode";
                dojo.forEach(dojo.isArray(_2c1) ? _2c1 : [_2c1], function(_2c2) {
                    var node = this[_2c2];
                    if (dojo.isWebKit || dijit.hasDefaultTabStop(node)) {
                        node.setAttribute("tabIndex", "-1");
                    } else {
                        node.removeAttribute("tabIndex");
                    }
                }, this);
            } else {
                if (this.tabIndex != "") {
                    this.focusNode.setAttribute("tabIndex", this.tabIndex);
                }
            }
        },
        setDisabled: function(_2c3) {
            dojo.deprecated("setDisabled(" + _2c3 + ") is deprecated. Use set('disabled'," + _2c3 + ") instead.", "", "2.0");
            this.set("disabled", _2c3);
        },
        _onFocus: function(e) {
            if (this.scrollOnFocus) {
                dojo.window.scrollIntoView(this.domNode);
            }
            this.inherited(arguments);
        },
        isFocusable: function() {
            return !this.disabled && this.focusNode && (dojo.style(this.domNode, "display") != "none");
        },
        focus: function() {
            if (!this.disabled) {
                dijit.focus(this.focusNode);
            }
        },
        compare: function(val1, val2) {
            if (typeof val1 == "number" && typeof val2 == "number") {
                return (isNaN(val1) && isNaN(val2)) ? 0 : val1 - val2;
            } else {
                if (val1 > val2) {
                    return 1;
                } else {
                    if (val1 < val2) {
                        return -1;
                    } else {
                        return 0;
                    }
                }
            }
        },
        onChange: function(_2c4) {},
        _onChangeActive: false,
        _handleOnChange: function(_2c5, _2c6) {
            if (this._lastValueReported == undefined && (_2c6 === null  || !this._onChangeActive)) {
                this._resetValue = this._lastValueReported = _2c5;
            }
            this._pendingOnChange = this._pendingOnChange || (typeof _2c5 != typeof this._lastValueReported) || (this.compare(_2c5, this._lastValueReported) != 0);
            if ((this.intermediateChanges || _2c6 || _2c6 === undefined) && this._pendingOnChange) {
                this._lastValueReported = _2c5;
                this._pendingOnChange = false;
                if (this._onChangeActive) {
                    if (this._onChangeHandle) {
                        clearTimeout(this._onChangeHandle);
                    }
                    this._onChangeHandle = setTimeout(dojo.hitch(this, function() {
                        this._onChangeHandle = null ;
                        this.onChange(_2c5);
                    }), 0);
                }
            }
        },
        create: function() {
            this.inherited(arguments);
            this._onChangeActive = true;
        },
        destroy: function() {
            if (this._onChangeHandle) {
                clearTimeout(this._onChangeHandle);
                this.onChange(this._lastValueReported);
            }
            this.inherited(arguments);
        },
        setValue: function(_2c7) {
            dojo.deprecated("dijit.form._FormWidget:setValue(" + _2c7 + ") is deprecated.  Use set('value'," + _2c7 + ") instead.", "", "2.0");
            this.set("value", _2c7);
        },
        getValue: function() {
            dojo.deprecated(this.declaredClass + "::getValue() is deprecated. Use get('value') instead.", "", "2.0");
            return this.get("value");
        },
        _onMouseDown: function(e) {
            if (!e.ctrlKey && dojo.mouseButtons.isLeft(e) && this.isFocusable()) {
                var _2c8 = this.connect(dojo.body(), "onmouseup", function() {
                    if (this.isFocusable()) {
                        this.focus();
                    }
                    this.disconnect(_2c8);
                });
            }
        }
    });
    dojo.declare("dijit.form._FormValueWidget", dijit.form._FormWidget, {
        readOnly: false,
        attributeMap: dojo.delegate(dijit.form._FormWidget.prototype.attributeMap, {
            value: "",
            readOnly: "focusNode"
        }),
        _setReadOnlyAttr: function(_2c9) {
            dojo.attr(this.focusNode, "readOnly", _2c9);
            dijit.setWaiState(this.focusNode, "readonly", _2c9);
            this._set("readOnly", _2c9);
        },
        postCreate: function() {
            this.inherited(arguments);
            if (dojo.isIE < 9 || (dojo.isIE && dojo.isQuirks)) {
                this.connect(this.focusNode || this.domNode, "onkeydown", this._onKeyDown);
            }
            if (this._resetValue === undefined) {
                this._lastValueReported = this._resetValue = this.value;
            }
        },
        _setValueAttr: function(_2ca, _2cb) {
            this._handleOnChange(_2ca, _2cb);
        },
        _handleOnChange: function(_2cc, _2cd) {
            this._set("value", _2cc);
            this.inherited(arguments);
        },
        undo: function() {
            this._setValueAttr(this._lastValueReported, false);
        },
        reset: function() {
            this._hasBeenBlurred = false;
            this._setValueAttr(this._resetValue, true);
        },
        _onKeyDown: function(e) {
            if (e.keyCode == dojo.keys.ESCAPE && !(e.ctrlKey || e.altKey || e.metaKey)) {
                var te;
                if (dojo.isIE) {
                    e.preventDefault();
                    te = document.createEventObject();
                    te.keyCode = dojo.keys.ESCAPE;
                    te.shiftKey = e.shiftKey;
                    e.srcElement.fireEvent("onkeypress", te);
                }
            }
        },
        _layoutHackIE7: function() {
            if (dojo.isIE == 7) {
                var _2ce = this.domNode;
                var _2cf = _2ce.parentNode;
                var _2d0 = _2ce.firstChild || _2ce;
                var _2d1 = _2d0.style.filter;
                var _2d2 = this;
                while (_2cf && _2cf.clientHeight == 0) {
                    (function ping() {
                        var _2d3 = _2d2.connect(_2cf, "onscroll", function(e) {
                            _2d2.disconnect(_2d3);
                            _2d0.style.filter = (new Date()).getMilliseconds();
                            setTimeout(function() {
                                _2d0.style.filter = _2d1;
                            }, 0);
                        });
                    })();
                    _2cf = _2cf.parentNode;
                }
            }
        }
    });
}
if (!dojo._hasResource["dijit._HasDropDown"]) {
    dojo._hasResource["dijit._HasDropDown"] = true;
    dojo.provide("dijit._HasDropDown");
    dojo.declare("dijit._HasDropDown", null , {
        _buttonNode: null ,
        _arrowWrapperNode: null ,
        _popupStateNode: null ,
        _aroundNode: null ,
        dropDown: null ,
        autoWidth: true,
        forceWidth: false,
        maxHeight: 0,
        dropDownPosition: ["below", "above"],
        _stopClickEvents: true,
        _onDropDownMouseDown: function(e) {
            if (this.disabled || this.readOnly) {
                return;
            }
            dojo.stopEvent(e);
            this._docHandler = this.connect(dojo.doc, "onmouseup", "_onDropDownMouseUp");
            this.toggleDropDown();
        },
        _onDropDownMouseUp: function(e) {
            if (e && this._docHandler) {
                this.disconnect(this._docHandler);
            }
            var _2d4 = this.dropDown
              , _2d5 = false;
            if (e && this._opened) {
                var c = dojo.position(this._buttonNode, true);
                if (!(e.pageX >= c.x && e.pageX <= c.x + c.w) || !(e.pageY >= c.y && e.pageY <= c.y + c.h)) {
                    var t = e.target;
                    while (t && !_2d5) {
                        if (dojo.hasClass(t, "dijitPopup")) {
                            _2d5 = true;
                        } else {
                            t = t.parentNode;
                        }
                    }
                    if (_2d5) {
                        t = e.target;
                        if (_2d4.onItemClick) {
                            var _2d6;
                            while (t && !(_2d6 = dijit.byNode(t))) {
                                t = t.parentNode;
                            }
                            if (_2d6 && _2d6.onClick && _2d6.getParent) {
                                _2d6.getParent().onItemClick(_2d6, e);
                            }
                        }
                        return;
                    }
                }
            }
            if (this._opened && _2d4.focus && _2d4.autoFocus !== false) {
                window.setTimeout(dojo.hitch(_2d4, "focus"), 1);
            }
        },
        _onDropDownClick: function(e) {
            if (this._stopClickEvents) {
                dojo.stopEvent(e);
            }
        },
        buildRendering: function() {
            this.inherited(arguments);
            this._buttonNode = this._buttonNode || this.focusNode || this.domNode;
            this._popupStateNode = this._popupStateNode || this.focusNode || this._buttonNode;
            var _2d7 = {
                "after": this.isLeftToRight() ? "Right" : "Left",
                "before": this.isLeftToRight() ? "Left" : "Right",
                "above": "Up",
                "below": "Down",
                "left": "Left",
                "right": "Right"
            }[this.dropDownPosition[0]] || this.dropDownPosition[0] || "Down";
            dojo.addClass(this._arrowWrapperNode || this._buttonNode, "dijit" + _2d7 + "ArrowButton");
        },
        postCreate: function() {
            this.inherited(arguments);
            this.connect(this._buttonNode, "onmousedown", "_onDropDownMouseDown");
            this.connect(this._buttonNode, "onclick", "_onDropDownClick");
            this.connect(this.focusNode, "onkeypress", "_onKey");
            this.connect(this.focusNode, "onkeyup", "_onKeyUp");
        },
        destroy: function() {
            if (this.dropDown) {
                if (!this.dropDown._destroyed) {
                    this.dropDown.destroyRecursive();
                }
                delete this.dropDown;
            }
            this.inherited(arguments);
        },
        _onKey: function(e) {
            if (this.disabled || this.readOnly) {
                return;
            }
            var d = this.dropDown
              , _2d8 = e.target;
            if (d && this._opened && d.handleKey) {
                if (d.handleKey(e) === false) {
                    dojo.stopEvent(e);
                    return;
                }
            }
            if (d && this._opened && e.charOrCode == dojo.keys.ESCAPE) {
                this.closeDropDown();
                dojo.stopEvent(e);
            } else {
                if (!this._opened && (e.charOrCode == dojo.keys.DOWN_ARROW || ((e.charOrCode == dojo.keys.ENTER || e.charOrCode == " ") && ((_2d8.tagName || "").toLowerCase() !== "input" || (_2d8.type && _2d8.type.toLowerCase() !== "text"))))) {
                    this._toggleOnKeyUp = true;
                    dojo.stopEvent(e);
                }
            }
        },
        _onKeyUp: function() {
            if (this._toggleOnKeyUp) {
                delete this._toggleOnKeyUp;
                this.toggleDropDown();
                var d = this.dropDown;
                if (d && d.focus) {
                    setTimeout(dojo.hitch(d, "focus"), 1);
                }
            }
        },
        _onBlur: function() {
            var _2d9 = dijit._curFocus && this.dropDown && dojo.isDescendant(dijit._curFocus, this.dropDown.domNode);
            this.closeDropDown(_2d9);
            this.inherited(arguments);
        },
        isLoaded: function() {
            return true;
        },
        loadDropDown: function(_2da) {
            _2da();
        },
        toggleDropDown: function() {
            if (this.disabled || this.readOnly) {
                return;
            }
            if (!this._opened) {
                if (!this.isLoaded()) {
                    this.loadDropDown(dojo.hitch(this, "openDropDown"));
                    return;
                } else {
                    this.openDropDown();
                }
            } else {
                this.closeDropDown();
            }
        },
        openDropDown: function() {
            var _2db = this.dropDown
              , _2dc = _2db.domNode
              , _2dd = this._aroundNode || this.domNode
              , self = this;
            if (!this._preparedNode) {
                this._preparedNode = true;
                if (_2dc.style.width) {
                    this._explicitDDWidth = true;
                }
                if (_2dc.style.height) {
                    this._explicitDDHeight = true;
                }
            }
            if (this.maxHeight || this.forceWidth || this.autoWidth) {
                var _2de = {
                    display: "",
                    visibility: "hidden"
                };
                if (!this._explicitDDWidth) {
                    _2de.width = "";
                }
                if (!this._explicitDDHeight) {
                    _2de.height = "";
                }
                dojo.style(_2dc, _2de);
                var _2df = this.maxHeight;
                if (_2df == -1) {
                    var _2e0 = dojo.window.getBox()
                      , _2e1 = dojo.position(_2dd, false);
                    _2df = Math.floor(Math.max(_2e1.y, _2e0.h - (_2e1.y + _2e1.h)));
                }
                if (_2db.startup && !_2db._started) {
                    _2db.startup();
                }
                dijit.popup.moveOffScreen(_2db);
                var mb = dojo._getMarginSize(_2dc);
                var _2e2 = (_2df && mb.h > _2df);
                dojo.style(_2dc, {
                    overflowX: "hidden",
                    overflowY: _2e2 ? "auto" : "hidden"
                });
                if (_2e2) {
                    mb.h = _2df;
                    if ("w" in mb) {
                        mb.w += 16;
                    }
                } else {
                    delete mb.h;
                }
                if (this.forceWidth) {
                    mb.w = _2dd.offsetWidth;
                } else {
                    if (this.autoWidth) {
                        mb.w = Math.max(mb.w, _2dd.offsetWidth);
                    } else {
                        delete mb.w;
                    }
                }
                if (dojo.isFunction(_2db.resize)) {
                    _2db.resize(mb);
                } else {
                    dojo.marginBox(_2dc, mb);
                }
            }
            var _2e3 = dijit.popup.open({
                parent: this,
                popup: _2db,
                around: _2dd,
                orient: dijit.getPopupAroundAlignment((this.dropDownPosition && this.dropDownPosition.length) ? this.dropDownPosition : ["below"], this.isLeftToRight()),
                onExecute: function() {
                    self.closeDropDown(true);
                },
                onCancel: function() {
                    self.closeDropDown(true);
                },
                onClose: function() {
                    dojo.attr(self._popupStateNode, "popupActive", false);
                    dojo.removeClass(self._popupStateNode, "dijitHasDropDownOpen");
                    self._opened = false;
                }
            });
            dojo.attr(this._popupStateNode, "popupActive", "true");
            dojo.addClass(self._popupStateNode, "dijitHasDropDownOpen");
            this._opened = true;
            return _2e3;
        },
        closeDropDown: function(_2e4) {
            if (this._opened) {
                if (_2e4) {
                    this.focus();
                }
                dijit.popup.close(this.dropDown);
                this._opened = false;
            }
        }
    });
}
if (!dojo._hasResource["dijit.form.Button"]) {
    dojo._hasResource["dijit.form.Button"] = true;
    dojo.provide("dijit.form.Button");
    dojo.declare("dijit.form.Button", dijit.form._FormWidget, {
        label: "",
        showLabel: true,
        iconClass: "",
        type: "button",
        baseClass: "dijitButton",
        templateString: dojo.cache("dijit.form", "templates/Button.html", "<span class=\"dijit dijitReset dijitInline\"\r\n\t><span class=\"dijitReset dijitInline dijitButtonNode\"\r\n\t\tdojoAttachEvent=\"ondijitclick:_onButtonClick\"\r\n\t\t><span class=\"dijitReset dijitStretch dijitButtonContents\"\r\n\t\t\tdojoAttachPoint=\"titleNode,focusNode\"\r\n\t\t\trole=\"button\" aria-labelledby=\"${id}_label\"\r\n\t\t\t><span class=\"dijitReset dijitInline dijitIcon\" dojoAttachPoint=\"iconNode\"></span\r\n\t\t\t><span class=\"dijitReset dijitToggleButtonIconChar\">&#x25CF;</span\r\n\t\t\t><span class=\"dijitReset dijitInline dijitButtonText\"\r\n\t\t\t\tid=\"${id}_label\"\r\n\t\t\t\tdojoAttachPoint=\"containerNode\"\r\n\t\t\t></span\r\n\t\t></span\r\n\t></span\r\n\t><input ${!nameAttrSetting} type=\"${type}\" value=\"${value}\" class=\"dijitOffScreen\" tabIndex=\"-1\"\r\n\t\tdojoAttachPoint=\"valueNode\"\r\n/></span>\r\n"),
        attributeMap: dojo.delegate(dijit.form._FormWidget.prototype.attributeMap, {
            value: "valueNode"
        }),
        _onClick: function(e) {
            if (this.disabled) {
                return false;
            }
            this._clicked();
            return this.onClick(e);
        },
        _onButtonClick: function(e) {
            if (this._onClick(e) === false) {
                e.preventDefault();
            } else {
                if (this.type == "submit" && !(this.valueNode || this.focusNode).form) {
                    for (var node = this.domNode; node.parentNode; node = node.parentNode) {
                        var _2e5 = dijit.byNode(node);
                        if (_2e5 && typeof _2e5._onSubmit == "function") {
                            _2e5._onSubmit(e);
                            break;
                        }
                    }
                } else {
                    if (this.valueNode) {
                        this.valueNode.click();
                        e.preventDefault();
                    }
                }
            }
        },
        buildRendering: function() {
            this.inherited(arguments);
            dojo.setSelectable(this.focusNode, false);
        },
        _fillContent: function(_2e6) {
            if (_2e6 && (!this.params || !("label" in this.params))) {
                this.set("label", _2e6.innerHTML);
            }
        },
        _setShowLabelAttr: function(val) {
            if (this.containerNode) {
                dojo.toggleClass(this.containerNode, "dijitDisplayNone", !val);
            }
            this._set("showLabel", val);
        },
        onClick: function(e) {
            return true;
        },
        _clicked: function(e) {},
        setLabel: function(_2e7) {
            dojo.deprecated("dijit.form.Button.setLabel() is deprecated.  Use set('label', ...) instead.", "", "2.0");
            this.set("label", _2e7);
        },
        _setLabelAttr: function(_2e8) {
            this._set("label", _2e8);
            this.containerNode.innerHTML = _2e8;
            if (this.showLabel == false && !this.params.title) {
                this.titleNode.title = dojo.trim(this.containerNode.innerText || this.containerNode.textContent || "");
            }
        },
        _setIconClassAttr: function(val) {
            var _2e9 = this.iconClass || "dijitNoIcon"
              , _2ea = val || "dijitNoIcon";
            dojo.replaceClass(this.iconNode, _2ea, _2e9);
            this._set("iconClass", val);
        }
    });
    dojo.declare("dijit.form.DropDownButton", [dijit.form.Button, dijit._Container, dijit._HasDropDown], {
        baseClass: "dijitDropDownButton",
        templateString: dojo.cache("dijit.form", "templates/DropDownButton.html", "<span class=\"dijit dijitReset dijitInline\"\r\n\t><span class='dijitReset dijitInline dijitButtonNode'\r\n\t\tdojoAttachEvent=\"ondijitclick:_onButtonClick\" dojoAttachPoint=\"_buttonNode\"\r\n\t\t><span class=\"dijitReset dijitStretch dijitButtonContents\"\r\n\t\t\tdojoAttachPoint=\"focusNode,titleNode,_arrowWrapperNode\"\r\n\t\t\trole=\"button\" aria-haspopup=\"true\" aria-labelledby=\"${id}_label\"\r\n\t\t\t><span class=\"dijitReset dijitInline dijitIcon\"\r\n\t\t\t\tdojoAttachPoint=\"iconNode\"\r\n\t\t\t></span\r\n\t\t\t><span class=\"dijitReset dijitInline dijitButtonText\"\r\n\t\t\t\tdojoAttachPoint=\"containerNode,_popupStateNode\"\r\n\t\t\t\tid=\"${id}_label\"\r\n\t\t\t></span\r\n\t\t\t><span class=\"dijitReset dijitInline dijitArrowButtonInner\"></span\r\n\t\t\t><span class=\"dijitReset dijitInline dijitArrowButtonChar\">&#9660;</span\r\n\t\t></span\r\n\t></span\r\n\t><input ${!nameAttrSetting} type=\"${type}\" value=\"${value}\" class=\"dijitOffScreen\" tabIndex=\"-1\"\r\n\t\tdojoAttachPoint=\"valueNode\"\r\n/></span>\r\n"),
        _fillContent: function() {
            if (this.srcNodeRef) {
                var _2eb = dojo.query("*", this.srcNodeRef);
                dijit.form.DropDownButton.superclass._fillContent.call(this, _2eb[0]);
                this.dropDownContainer = this.srcNodeRef;
            }
        },
        startup: function() {
            if (this._started) {
                return;
            }
            if (!this.dropDown && this.dropDownContainer) {
                var _2ec = dojo.query("[widgetId]", this.dropDownContainer)[0];
                this.dropDown = dijit.byNode(_2ec);
                delete this.dropDownContainer;
            }
            if (this.dropDown) {
                dijit.popup.hide(this.dropDown);
            }
            this.inherited(arguments);
        },
        isLoaded: function() {
            var _2ed = this.dropDown;
            return ( !!_2ed && (!_2ed.href || _2ed.isLoaded)) ;
        },
        loadDropDown: function() {
            var _2ee = this.dropDown;
            if (!_2ee) {
                return;
            }
            if (!this.isLoaded()) {
                var _2ef = dojo.connect(_2ee, "onLoad", this, function() {
                    dojo.disconnect(_2ef);
                    this.openDropDown();
                });
                _2ee.refresh();
            } else {
                this.openDropDown();
            }
        },
        isFocusable: function() {
            return this.inherited(arguments) && !this._mouseDown;
        }
    });
    dojo.declare("dijit.form.ComboButton", dijit.form.DropDownButton, {
        templateString: dojo.cache("dijit.form", "templates/ComboButton.html", "<table class=\"dijit dijitReset dijitInline dijitLeft\"\r\n\tcellspacing='0' cellpadding='0' role=\"presentation\"\r\n\t><tbody role=\"presentation\"><tr role=\"presentation\"\r\n\t\t><td class=\"dijitReset dijitStretch dijitButtonNode\" dojoAttachPoint=\"buttonNode\" dojoAttachEvent=\"ondijitclick:_onButtonClick,onkeypress:_onButtonKeyPress\"\r\n\t\t><div id=\"${id}_button\" class=\"dijitReset dijitButtonContents\"\r\n\t\t\tdojoAttachPoint=\"titleNode\"\r\n\t\t\trole=\"button\" aria-labelledby=\"${id}_label\"\r\n\t\t\t><div class=\"dijitReset dijitInline dijitIcon\" dojoAttachPoint=\"iconNode\" role=\"presentation\"></div\r\n\t\t\t><div class=\"dijitReset dijitInline dijitButtonText\" id=\"${id}_label\" dojoAttachPoint=\"containerNode\" role=\"presentation\"></div\r\n\t\t></div\r\n\t\t></td\r\n\t\t><td id=\"${id}_arrow\" class='dijitReset dijitRight dijitButtonNode dijitArrowButton'\r\n\t\t\tdojoAttachPoint=\"_popupStateNode,focusNode,_buttonNode\"\r\n\t\t\tdojoAttachEvent=\"onkeypress:_onArrowKeyPress\"\r\n\t\t\ttitle=\"${optionsTitle}\"\r\n\t\t\trole=\"button\" aria-haspopup=\"true\"\r\n\t\t\t><div class=\"dijitReset dijitArrowButtonInner\" role=\"presentation\"></div\r\n\t\t\t><div class=\"dijitReset dijitArrowButtonChar\" role=\"presentation\">&#9660;</div\r\n\t\t></td\r\n\t\t><td style=\"display:none !important;\"\r\n\t\t\t><input ${!nameAttrSetting} type=\"${type}\" value=\"${value}\" dojoAttachPoint=\"valueNode\"\r\n\t\t/></td></tr></tbody\r\n></table>\r\n"),
        attributeMap: dojo.mixin(dojo.clone(dijit.form.Button.prototype.attributeMap), {
            id: "",
            tabIndex: ["focusNode", "titleNode"],
            title: "titleNode"
        }),
        optionsTitle: "",
        baseClass: "dijitComboButton",
        cssStateNodes: {
            "buttonNode": "dijitButtonNode",
            "titleNode": "dijitButtonContents",
            "_popupStateNode": "dijitDownArrowButton"
        },
        _focusedNode: null ,
        _onButtonKeyPress: function(evt) {
            if (evt.charOrCode == dojo.keys[this.isLeftToRight() ? "RIGHT_ARROW" : "LEFT_ARROW"]) {
                dijit.focus(this._popupStateNode);
                dojo.stopEvent(evt);
            }
        },
        _onArrowKeyPress: function(evt) {
            if (evt.charOrCode == dojo.keys[this.isLeftToRight() ? "LEFT_ARROW" : "RIGHT_ARROW"]) {
                dijit.focus(this.titleNode);
                dojo.stopEvent(evt);
            }
        },
        focus: function(_2f0) {
            if (!this.disabled) {
                dijit.focus(_2f0 == "start" ? this.titleNode : this._popupStateNode);
            }
        }
    });
    dojo.declare("dijit.form.ToggleButton", dijit.form.Button, {
        baseClass: "dijitToggleButton",
        checked: false,
        attributeMap: dojo.mixin(dojo.clone(dijit.form.Button.prototype.attributeMap), {
            checked: "focusNode"
        }),
        _clicked: function(evt) {
            this.set("checked", !this.checked);
        },
        _setCheckedAttr: function(_2f1, _2f2) {
            this._set("checked", _2f1);
            dojo.attr(this.focusNode || this.domNode, "checked", _2f1);
            dijit.setWaiState(this.focusNode || this.domNode, "pressed", _2f1);
            this._handleOnChange(_2f1, _2f2);
        },
        setChecked: function(_2f3) {
            dojo.deprecated("setChecked(" + _2f3 + ") is deprecated. Use set('checked'," + _2f3 + ") instead.", "", "2.0");
            this.set("checked", _2f3);
        },
        reset: function() {
            this._hasBeenBlurred = false;
            this.set("checked", this.params.checked || false);
        }
    });
}
if (!dojo._hasResource["dojox.form.BusyButton"]) {
    dojo._hasResource["dojox.form.BusyButton"] = true;
    dojo.provide("dojox.form.BusyButton");
    dojo.declare("dojox.form._BusyButtonMixin", null , {
        isBusy: false,
        busyLabel: "",
        timeout: null ,
        useIcon: true,
        postMixInProperties: function() {
            this.inherited(arguments);
            if (!this.busyLabel) {
                this.busyLabel = dojo.i18n.getLocalization("dijit", "loading", this.lang).loadingState;
            }
        },
        postCreate: function() {
            this.inherited(arguments);
            this._label = this.containerNode.innerHTML;
            this._initTimeout = this.timeout;
            if (this.isBusy) {
                this.makeBusy();
            }
        },
        makeBusy: function() {
            this.isBusy = true;
            this.set("disabled", true);
            this.setLabel(this.busyLabel, this.timeout);
        },
        cancel: function() {
            this.set("disabled", false);
            this.isBusy = false;
            this.setLabel(this._label);
            if (this._timeout) {
                clearTimeout(this._timeout);
            }
            this.timeout = this._initTimeout;
        },
        resetTimeout: function(_2f4) {
            if (this._timeout) {
                clearTimeout(this._timeout);
            }
            if (_2f4) {
                this._timeout = setTimeout(dojo.hitch(this, function() {
                    this.cancel();
                }), _2f4);
            } else {
                if (_2f4 == undefined || _2f4 === 0) {
                    this.cancel();
                }
            }
        },
        setLabel: function(_2f5, _2f6) {
            this.label = _2f5;
            while (this.containerNode.firstChild) {
                this.containerNode.removeChild(this.containerNode.firstChild);
            }
            this.containerNode.innerHTML = this.label;
            if (this.showLabel == false && !(dojo.attr(this.domNode, "title"))) {
                this.titleNode.title = dojo.trim(this.containerNode.innerText || this.containerNode.textContent || "");
            }
            if (_2f6) {
                this.resetTimeout(_2f6);
            } else {
                this.timeout = null ;
            }
            if (this.useIcon && this.isBusy) {
                var node = new Image();
                node.src = this._blankGif;
                dojo.attr(node, "id", this.id + "_icon");
                dojo.addClass(node, "dojoxBusyButtonIcon");
                this.containerNode.appendChild(node);
            }
        },
        _clicked: function(e) {
            if (!this.isBusy) {
                this.makeBusy();
            }
        }
    });
    dojo.declare("dojox.form.BusyButton", [dijit.form.Button, dojox.form._BusyButtonMixin], {});
    dojo.declare("dojox.form.BusyComboButton", [dijit.form.ComboButton, dojox.form._BusyButtonMixin], {});
    dojo.declare("dojox.form.BusyDropDownButton", [dijit.form.DropDownButton, dojox.form._BusyButtonMixin], {});
}
if (!dojo._hasResource["smartdot.form.Button"]) {
    dojo._hasResource["smartdot.form.Button"] = true;
    dojo.provide("smartdot.form.Button");
    function getText(el) {
        if (el.textContent) {
            return el.textContent;
        } else {
            if (el.innerText) {
                return el.innerText;
            } else {
                return "";
            }
        }
    }
    ;function _setLabelAttrHack_sd(_2f7) {
        if (this.label == "") {
            if (-1 == _2f7.toLowerCase().lastIndexOf("<")) {
                _2f7 = _formatBtnLabel_sd(_2f7);
            } else {
                if (-1 != _2f7.toLowerCase().lastIndexOf("</a>")) {
                    this.isLink = true;
                    var _2f8 = document.createElement("span");
                    _2f8.innerHTML = _2f7;
                    this.refLinkObj = _2f8.firstChild;
                    _2f7 = _formatBtnLabel_sd(getText(_2f8));
                    this.refLinkObj.style.display = "none";
                    document.body.appendChild(this.refLinkObj);
                }
            }
        }
        this.inherited(arguments);
    }
    ;function _clickLink_sd() {
        if (this.isLink) {
            var _2f9 = this.refLinkObj.getAttribute("target");
            var _2fa = this.refLinkObj.getAttribute("href");
            if (_2f9) {
                window.open(_2fa, _2f9);
            } else {
                location.href = _2fa;
            }
        }
    }
    ;function _formatBtnLabel_sd(_2fb) {
        if (_2fb.length == 2 && _2fb.charCodeAt(0) > 127) {
            return _2fb.substr(0, 1) + " " + _2fb.substr(1, 1);
        } else {
            return _2fb;
        }
    }
    ;dojo.declare("smartdot.form.Button", dijit.form.Button, {
        isLink: false,
        onClick: _clickLink_sd,
        _setLabelAttr: _setLabelAttrHack_sd
    });
    dojo.declare("smartdot.form.BusyButton", dojox.form.BusyButton, {
        isLink: false,
        onClick: _clickLink_sd,
        _setLabelAttr: _setLabelAttrHack_sd,
        _onClick: function(e) {
            if (this.disabled || this.readOnly) {
                return false;
            }
            var _2fc = this.onClick(e);
            if (false != _2fc) {
                this._clicked();
            }
            return _2fc;
        }
    });
}
if (!dojo._hasResource["smartdot.form.BusyButton"]) {
    dojo._hasResource["smartdot.form.BusyButton"] = true;
    dojo.provide("smartdot.form.BusyButton");
}
if (!dojo._hasResource["dijit.form.TextBox"]) {
    dojo._hasResource["dijit.form.TextBox"] = true;
    dojo.provide("dijit.form.TextBox");
    dojo.declare("dijit.form.TextBox", dijit.form._FormValueWidget, {
        trim: false,
        uppercase: false,
        lowercase: false,
        propercase: false,
        maxLength: "",
        selectOnClick: false,
        placeHolder: "",
        templateString: dojo.cache("dijit.form", "templates/TextBox.html", "<div class=\"dijit dijitReset dijitInline dijitLeft\" id=\"widget_${id}\" role=\"presentation\"\r\n\t><div class=\"dijitReset dijitInputField dijitInputContainer\"\r\n\t\t><input class=\"dijitReset dijitInputInner\" dojoAttachPoint='textbox,focusNode' autocomplete=\"off\"\r\n\t\t\t${!nameAttrSetting} type='${type}'\r\n\t/></div\r\n></div>\r\n"),
        _singleNodeTemplate: "<input class=\"dijit dijitReset dijitLeft dijitInputField\" dojoAttachPoint=\"textbox,focusNode\" autocomplete=\"off\" type=\"${type}\" ${!nameAttrSetting} />",
        _buttonInputDisabled: dojo.isIE ? "disabled" : "",
        baseClass: "dijitTextBox",
        attributeMap: dojo.delegate(dijit.form._FormValueWidget.prototype.attributeMap, {
            maxLength: "focusNode"
        }),
        postMixInProperties: function() {
            var type = this.type.toLowerCase();
            if (this.templateString && this.templateString.toLowerCase() == "input" || ((type == "hidden" || type == "file") && this.templateString == dijit.form.TextBox.prototype.templateString)) {
                this.templateString = this._singleNodeTemplate;
            }
            this.inherited(arguments);
        },
        _setPlaceHolderAttr: function(v) {
            this._set("placeHolder", v);
            if (!this._phspan) {
                this._attachPoints.push("_phspan");
                this._phspan = dojo.create("span", {
                    className: "dijitPlaceHolder dijitInputField"
                }, this.textbox, "after");
            }
            this._phspan.innerHTML = "";
            this._phspan.appendChild(document.createTextNode(v));
            this._updatePlaceHolder();
        },
        _updatePlaceHolder: function() {
            if (this._phspan) {
                this._phspan.style.display = (this.placeHolder && !this._focused && !this.textbox.value) ? "" : "none";
            }
        },
        _getValueAttr: function() {
            return this.parse(this.get("displayedValue"), this.constraints);
        },
        _setValueAttr: function(_2fd, _2fe, _2ff) {
            var _300;
            if (_2fd !== undefined) {
                _300 = this.filter(_2fd);
                if (typeof _2ff != "string") {
                    if (_300 !== null  && ((typeof _300 != "number") || !isNaN(_300))) {
                        _2ff = this.filter(this.format(_300, this.constraints));
                    } else {
                        _2ff = "";
                    }
                }
            }
            if (_2ff != null  && _2ff != undefined && ((typeof _2ff) != "number" || !isNaN(_2ff)) && this.textbox.value != _2ff) {
                this.textbox.value = _2ff;
                this._set("displayedValue", this.get("displayedValue"));
            }
            this._updatePlaceHolder();
            this.inherited(arguments, [_300, _2fe]);
        },
        displayedValue: "",
        getDisplayedValue: function() {
            dojo.deprecated(this.declaredClass + "::getDisplayedValue() is deprecated. Use set('displayedValue') instead.", "", "2.0");
            return this.get("displayedValue");
        },
        _getDisplayedValueAttr: function() {
            return this.filter(this.textbox.value);
        },
        setDisplayedValue: function(_301) {
            dojo.deprecated(this.declaredClass + "::setDisplayedValue() is deprecated. Use set('displayedValue', ...) instead.", "", "2.0");
            this.set("displayedValue", _301);
        },
        _setDisplayedValueAttr: function(_302) {
            if (_302 === null  || _302 === undefined) {
                _302 = "";
            } else {
                if (typeof _302 != "string") {
                    _302 = String(_302);
                }
            }
            this.textbox.value = _302;
            this._setValueAttr(this.get("value"), undefined);
            this._set("displayedValue", this.get("displayedValue"));
        },
        format: function(_303, _304) {
            return ( (_303 == null  || _303 == undefined) ? "" : (_303.toString ? _303.toString() : _303)) ;
        },
        parse: function(_305, _306) {
            return _305;
        },
        _refreshState: function() {},
        _onInput: function(e) {
            if (e && e.type && /key/i.test(e.type) && e.keyCode) {
                switch (e.keyCode) {
                case dojo.keys.SHIFT:
                case dojo.keys.ALT:
                case dojo.keys.CTRL:
                case dojo.keys.TAB:
                    return;
                }
            }
            if (this.intermediateChanges) {
                var _307 = this;
                setTimeout(function() {
                    _307._handleOnChange(_307.get("value"), false);
                }, 0);
            }
            this._refreshState();
            this._set("displayedValue", this.get("displayedValue"));
        },
        postCreate: function() {
            if (dojo.isIE) {
                setTimeout(dojo.hitch(this, function() {
                    var s = dojo.getComputedStyle(this.domNode);
                    if (s) {
                        var ff = s.fontFamily;
                        if (ff) {
                            var _308 = this.domNode.getElementsByTagName("INPUT");
                            if (_308) {
                                for (var i = 0; i < _308.length; i++) {
                                    _308[i].style.fontFamily = ff;
                                }
                            }
                        }
                    }
                }), 0);
            }
            this.textbox.setAttribute("value", this.textbox.value);
            this.inherited(arguments);
            if (dojo.isMoz || dojo.isOpera) {
                this.connect(this.textbox, "oninput", "_onInput");
            } else {
                this.connect(this.textbox, "onkeydown", "_onInput");
                this.connect(this.textbox, "onkeyup", "_onInput");
                this.connect(this.textbox, "onpaste", "_onInput");
                this.connect(this.textbox, "oncut", "_onInput");
            }
        },
        _blankValue: "",
        filter: function(val) {
            if (val === null ) {
                return this._blankValue;
            }
            if (typeof val != "string") {
                return val;
            }
            if (this.trim) {
                val = dojo.trim(val);
            }
            if (this.uppercase) {
                val = val.toUpperCase();
            }
            if (this.lowercase) {
                val = val.toLowerCase();
            }
            if (this.propercase) {
                val = val.replace(/[^\s]+/g, function(word) {
                    return word.substring(0, 1).toUpperCase() + word.substring(1);
                });
            }
            return val;
        },
        _setBlurValue: function() {
            this._setValueAttr(this.get("value"), true);
        },
        _onBlur: function(e) {
            if (this.disabled) {
                return;
            }
            this._setBlurValue();
            this.inherited(arguments);
            if (this._selectOnClickHandle) {
                this.disconnect(this._selectOnClickHandle);
            }
            if (this.selectOnClick && dojo.isMoz) {
                this.textbox.selectionStart = this.textbox.selectionEnd = undefined;
            }
            this._updatePlaceHolder();
        },
        _onFocus: function(by) {
            if (this.disabled || this.readOnly) {
                return;
            }
            if (this.selectOnClick && by == "mouse") {
                this._selectOnClickHandle = this.connect(this.domNode, "onmouseup", function() {
                    this.disconnect(this._selectOnClickHandle);
                    var _309;
                    if (dojo.isIE) {
                        var _30a = dojo.doc.selection.createRange();
                        var _30b = _30a.parentElement();
                        _309 = _30b == this.textbox && _30a.text.length == 0;
                    } else {
                        _309 = this.textbox.selectionStart == this.textbox.selectionEnd;
                    }
                    if (_309) {
                        dijit.selectInputText(this.textbox);
                    }
                });
            }
            this._updatePlaceHolder();
            this.inherited(arguments);
            this._refreshState();
        },
        reset: function() {
            this.textbox.value = "";
            this.inherited(arguments);
        }
    });
    dijit.selectInputText = function(_30c, _30d, stop) {
        var _30e = dojo.global;
        var _30f = dojo.doc;
        _30c = dojo.byId(_30c);
        if (isNaN(_30d)) {
            _30d = 0;
        }
        if (isNaN(stop)) {
            stop = _30c.value ? _30c.value.length : 0;
        }
        dijit.focus(_30c);
        if (_30f["selection"] && dojo.body()["createTextRange"]) {
            if (_30c.createTextRange) {
                var r = _30c.createTextRange();
                r.collapse(true);
                r.moveStart("character", -99999);
                r.moveStart("character", _30d);
                r.moveEnd("character", stop - _30d);
                r.select();
            }
        } else {
            if (_30e["getSelection"]) {
                if (_30c.setSelectionRange) {
                    _30c.setSelectionRange(_30d, stop);
                }
            }
        }
    }
    ;
}
if (!dojo._hasResource["dijit.Tooltip"]) {
    dojo._hasResource["dijit.Tooltip"] = true;
    dojo.provide("dijit.Tooltip");
    dojo.declare("dijit._MasterTooltip", [dijit._Widget, dijit._Templated], {
        duration: dijit.defaultDuration,
        templateString: dojo.cache("dijit", "templates/Tooltip.html", "<div class=\"dijitTooltip dijitTooltipLeft\" id=\"dojoTooltip\"\r\n\t><div class=\"dijitTooltipContainer dijitTooltipContents\" dojoAttachPoint=\"containerNode\" role='alert'></div\r\n\t><div class=\"dijitTooltipConnector\" dojoAttachPoint=\"connectorNode\"></div\r\n></div>\r\n"),
        postCreate: function() {
            dojo.body().appendChild(this.domNode);
            this.bgIframe = new dijit.BackgroundIframe(this.domNode);
            this.fadeIn = dojo.fadeIn({
                node: this.domNode,
                duration: this.duration,
                onEnd: dojo.hitch(this, "_onShow")
            });
            this.fadeOut = dojo.fadeOut({
                node: this.domNode,
                duration: this.duration,
                onEnd: dojo.hitch(this, "_onHide")
            });
        },
        show: function(_310, _311, _312, rtl) {
            if (this.aroundNode && this.aroundNode === _311) {
                return;
            }
            this.domNode.width = "auto";
            if (this.fadeOut.status() == "playing") {
                this._onDeck = arguments;
                return;
            }
            this.containerNode.innerHTML = _310;
            var pos = dijit.placeOnScreenAroundElement(this.domNode, _311, dijit.getPopupAroundAlignment((_312 && _312.length) ? _312 : dijit.Tooltip.defaultPosition, !rtl), dojo.hitch(this, "orient"));
            dojo.style(this.domNode, "opacity", 0);
            this.fadeIn.play();
            this.isShowingNow = true;
            this.aroundNode = _311;
        },
        orient: function(node, _313, _314, _315, _316) {
            this.connectorNode.style.top = "";
            var _317 = _315.w - this.connectorNode.offsetWidth;
            node.className = "dijitTooltip " + {
                "BL-TL": "dijitTooltipBelow dijitTooltipABLeft",
                "TL-BL": "dijitTooltipAbove dijitTooltipABLeft",
                "BR-TR": "dijitTooltipBelow dijitTooltipABRight",
                "TR-BR": "dijitTooltipAbove dijitTooltipABRight",
                "BR-BL": "dijitTooltipRight",
                "BL-BR": "dijitTooltipLeft"
            }[_313 + "-" + _314];
            this.domNode.style.width = "auto";
            var size = dojo.contentBox(this.domNode);
            var _318 = Math.min((Math.max(_317, 1)), size.w);
            var _319 = _318 < size.w;
            this.domNode.style.width = _318 + "px";
            if (_319) {
                this.containerNode.style.overflow = "auto";
                var _31a = this.containerNode.scrollWidth;
                this.containerNode.style.overflow = "visible";
                if (_31a > _318) {
                    _31a = _31a + dojo.style(this.domNode, "paddingLeft") + dojo.style(this.domNode, "paddingRight");
                    this.domNode.style.width = _31a + "px";
                }
            }
            if (_314.charAt(0) == "B" && _313.charAt(0) == "B") {
                var mb = dojo.marginBox(node);
                var _31b = this.connectorNode.offsetHeight;
                if (mb.h > _315.h) {
                    var _31c = _315.h - (_316.h / 2) - (_31b / 2);
                    this.connectorNode.style.top = _31c + "px";
                    this.connectorNode.style.bottom = "";
                } else {
                    this.connectorNode.style.bottom = Math.min(Math.max(_316.h / 2 - _31b / 2, 0), mb.h - _31b) + "px";
                    this.connectorNode.style.top = "";
                }
            } else {
                this.connectorNode.style.top = "";
                this.connectorNode.style.bottom = "";
            }
            return Math.max(0, size.w - _317);
        },
        _onShow: function() {
            if (dojo.isIE) {
                this.domNode.style.filter = "";
            }
        },
        hide: function(_31d) {
            if (this._onDeck && this._onDeck[1] == _31d) {
                this._onDeck = null ;
            } else {
                if (this.aroundNode === _31d) {
                    this.fadeIn.stop();
                    this.isShowingNow = false;
                    this.aroundNode = null ;
                    this.fadeOut.play();
                } else {}
            }
        },
        _onHide: function() {
            this.domNode.style.cssText = "";
            this.containerNode.innerHTML = "";
            if (this._onDeck) {
                this.show.apply(this, this._onDeck);
                this._onDeck = null ;
            }
        }
    });
    dijit.showTooltip = function(_31e, _31f, _320, rtl) {
        if (!dijit._masterTT) {
            dijit._masterTT = new dijit._MasterTooltip();
        }
        return dijit._masterTT.show(_31e, _31f, _320, rtl);
    }
    ;
    dijit.hideTooltip = function(_321) {
        if (!dijit._masterTT) {
            dijit._masterTT = new dijit._MasterTooltip();
        }
        return dijit._masterTT.hide(_321);
    }
    ;
    dojo.declare("dijit.Tooltip", dijit._Widget, {
        label: "",
        showDelay: 400,
        connectId: [],
        position: [],
        _setConnectIdAttr: function(_322) {
            dojo.forEach(this._connections || [], function(_323) {
                dojo.forEach(_323, dojo.hitch(this, "disconnect"));
            }, this);
            var ary = dojo.isArrayLike(_322) ? _322 : (_322 ? [_322] : []);
            this._connections = dojo.map(ary, function(id) {
                var node = dojo.byId(id);
                return node ? [this.connect(node, "onmouseenter", "_onTargetMouseEnter"), this.connect(node, "onmouseleave", "_onTargetMouseLeave"), this.connect(node, "onfocus", "_onTargetFocus"), this.connect(node, "onblur", "_onTargetBlur")] : [];
            }, this);
            this._set("connectId", _322);
            this._connectIds = ary;
        },
        addTarget: function(node) {
            var id = node.id || node;
            if (dojo.indexOf(this._connectIds, id) == -1) {
                this.set("connectId", this._connectIds.concat(id));
            }
        },
        removeTarget: function(node) {
            var id = node.id || node
              , idx = dojo.indexOf(this._connectIds, id);
            if (idx >= 0) {
                this._connectIds.splice(idx, 1);
                this.set("connectId", this._connectIds);
            }
        },
        buildRendering: function() {
            this.inherited(arguments);
            dojo.addClass(this.domNode, "dijitTooltipData");
        },
        startup: function() {
            this.inherited(arguments);
            var ids = this.connectId;
            dojo.forEach(dojo.isArrayLike(ids) ? ids : [ids], this.addTarget, this);
        },
        _onTargetMouseEnter: function(e) {
            this._onHover(e);
        },
        _onTargetMouseLeave: function(e) {
            this._onUnHover(e);
        },
        _onTargetFocus: function(e) {
            this._focus = true;
            this._onHover(e);
        },
        _onTargetBlur: function(e) {
            this._focus = false;
            this._onUnHover(e);
        },
        _onHover: function(e) {
            if (!this._showTimer) {
                var _324 = e.target;
                this._showTimer = setTimeout(dojo.hitch(this, function() {
                    this.open(_324);
                }), this.showDelay);
            }
        },
        _onUnHover: function(e) {
            if (this._focus) {
                return;
            }
            if (this._showTimer) {
                clearTimeout(this._showTimer);
                delete this._showTimer;
            }
            this.close();
        },
        open: function(_325) {
            if (this._showTimer) {
                clearTimeout(this._showTimer);
                delete this._showTimer;
            }
            dijit.showTooltip(this.label || this.domNode.innerHTML, _325, this.position, !this.isLeftToRight());
            this._connectNode = _325;
            this.onShow(_325, this.position);
        },
        close: function() {
            if (this._connectNode) {
                dijit.hideTooltip(this._connectNode);
                delete this._connectNode;
                this.onHide();
            }
            if (this._showTimer) {
                clearTimeout(this._showTimer);
                delete this._showTimer;
            }
        },
        onShow: function(_326, _327) {},
        onHide: function() {},
        uninitialize: function() {
            this.close();
            this.inherited(arguments);
        }
    });
    dijit.Tooltip.defaultPosition = ["after", "before"];
}
if (!dojo._hasResource["dijit.form.ValidationTextBox"]) {
    dojo._hasResource["dijit.form.ValidationTextBox"] = true;
    dojo.provide("dijit.form.ValidationTextBox");
    dojo.declare("dijit.form.ValidationTextBox", dijit.form.TextBox, {
        templateString: dojo.cache("dijit.form", "templates/ValidationTextBox.html", "<div class=\"dijit dijitReset dijitInlineTable dijitLeft\"\r\n\tid=\"widget_${id}\" role=\"presentation\"\r\n\t><div class='dijitReset dijitValidationContainer'\r\n\t\t><input class=\"dijitReset dijitInputField dijitValidationIcon dijitValidationInner\" value=\"&#935; \" type=\"text\" tabIndex=\"-1\" readonly=\"readonly\" role=\"presentation\"\r\n\t/></div\r\n\t><div class=\"dijitReset dijitInputField dijitInputContainer\"\r\n\t\t><input class=\"dijitReset dijitInputInner\" dojoAttachPoint='textbox,focusNode' autocomplete=\"off\"\r\n\t\t\t${!nameAttrSetting} type='${type}'\r\n\t/></div\r\n></div>\r\n"),
        baseClass: "dijitTextBox dijitValidationTextBox",
        required: false,
        promptMessage: "",
        invalidMessage: "$_unset_$",
        missingMessage: "$_unset_$",
        message: "",
        constraints: {},
        regExp: ".*",
        regExpGen: function(_328) {
            return this.regExp;
        },
        state: "",
        tooltipPosition: [],
        _setValueAttr: function() {
            this.inherited(arguments);
            this.validate(this._focused);
        },
        validator: function(_329, _32a) {
            return (new RegExp("^(?:" + this.regExpGen(_32a) + ")" + (this.required ? "" : "?") + "$")).test(_329) && (!this.required || !this._isEmpty(_329)) && (this._isEmpty(_329) || this.parse(_329, _32a) !== undefined);
        },
        _isValidSubset: function() {
            return this.textbox.value.search(this._partialre) == 0;
        },
        isValid: function(_32b) {
            return this.validator(this.textbox.value, this.constraints);
        },
        _isEmpty: function(_32c) {
            return (this.trim ? /^\s*$/ : /^$/).test(_32c);
        },
        getErrorMessage: function(_32d) {
            return (this.required && this._isEmpty(this.textbox.value)) ? this.missingMessage : this.invalidMessage;
        },
        getPromptMessage: function(_32e) {
            return this.promptMessage;
        },
        _maskValidSubsetError: true,
        validate: function(_32f) {
            var _330 = "";
            var _331 = this.disabled || this.isValid(_32f);
            if (_331) {
                this._maskValidSubsetError = true;
            }
            var _332 = this._isEmpty(this.textbox.value);
            var _333 = !_331 && _32f && this._isValidSubset();
            this._set("state", _331 ? "" : (((((!this._hasBeenBlurred || _32f) && _332) || _333) && this._maskValidSubsetError) ? "Incomplete" : "Error"));
            dijit.setWaiState(this.focusNode, "invalid", _331 ? "false" : "true");
            if (this.state == "Error") {
                this._maskValidSubsetError = _32f && _333;
                _330 = this.getErrorMessage(_32f);
            } else {
                if (this.state == "Incomplete") {
                    _330 = this.getPromptMessage(_32f);
                    this._maskValidSubsetError = !this._hasBeenBlurred || _32f;
                } else {
                    if (_332) {
                        _330 = this.getPromptMessage(_32f);
                    }
                }
            }
            this.set("message", _330);
            return _331;
        },
        displayMessage: function(_334) {
            dijit.hideTooltip(this.domNode);
            if (_334 && this._focused) {
                dijit.showTooltip(_334, this.domNode, this.tooltipPosition, !this.isLeftToRight());
            }
        },
        _refreshState: function() {
            this.validate(this._focused);
            this.inherited(arguments);
        },
        constructor: function() {
            this.constraints = {};
        },
        _setConstraintsAttr: function(_335) {
            if (!_335.locale && this.lang) {
                _335.locale = this.lang;
            }
            this._set("constraints", _335);
            this._computePartialRE();
        },
        _computePartialRE: function() {
            var p = this.regExpGen(this.constraints);
            this.regExp = p;
            var _336 = "";
            if (p != ".*") {
                this.regExp.replace(/\\.|\[\]|\[.*?[^\\]{1}\]|\{.*?\}|\(\?[=:!]|./g, function(re) {
                    switch (re.charAt(0)) {
                    case "{":
                    case "+":
                    case "?":
                    case "*":
                    case "^":
                    case "$":
                    case "|":
                    case "(":
                        _336 += re;
                        break;
                    case ")":
                        _336 += "|$)";
                        break;
                    default:
                        _336 += "(?:" + re + "|$)";
                        break;
                    }
                });
            }
            try {
                "".search(_336);
            } catch (e) {
                _336 = this.regExp;
                console.warn("RegExp error in " + this.declaredClass + ": " + this.regExp);
            }
            this._partialre = "^(?:" + _336 + ")$";
        },
        postMixInProperties: function() {
            this.inherited(arguments);
            this.messages = dojo.i18n.getLocalization("dijit.form", "validate", this.lang);
            if (this.invalidMessage == "$_unset_$") {
                this.invalidMessage = this.messages.invalidMessage;
            }
            if (!this.invalidMessage) {
                this.invalidMessage = this.promptMessage;
            }
            if (this.missingMessage == "$_unset_$") {
                this.missingMessage = this.messages.missingMessage;
            }
            if (!this.missingMessage) {
                this.missingMessage = this.invalidMessage;
            }
            this._setConstraintsAttr(this.constraints);
        },
        _setDisabledAttr: function(_337) {
            this.inherited(arguments);
            this._refreshState();
        },
        _setRequiredAttr: function(_338) {
            this._set("required", _338);
            dijit.setWaiState(this.focusNode, "required", _338);
            this._refreshState();
        },
        _setMessageAttr: function(_339) {
            this._set("message", _339);
            this.displayMessage(_339);
        },
        reset: function() {
            this._maskValidSubsetError = true;
            this.inherited(arguments);
        },
        _onBlur: function() {
            this.displayMessage("");
            this.inherited(arguments);
        }
    });
    dojo.declare("dijit.form.MappedTextBox", dijit.form.ValidationTextBox, {
        postMixInProperties: function() {
            this.inherited(arguments);
            this.nameAttrSetting = "";
        },
        serialize: function(val, _33a) {
            return val.toString ? val.toString() : "";
        },
        toString: function() {
            var val = this.filter(this.get("value"));
            return val != null  ? (typeof val == "string" ? val : this.serialize(val, this.constraints)) : "";
        },
        validate: function() {
            this.valueNode.value = this.toString();
            return this.inherited(arguments);
        },
        buildRendering: function() {
            this.inherited(arguments);
            this.valueNode = dojo.place("<input type='hidden'" + (this.name ? " name='" + this.name.replace(/'/g, "&quot;") + "'" : "") + "/>", this.textbox, "after");
        },
        reset: function() {
            this.valueNode.value = "";
            this.inherited(arguments);
        }
    });
    dojo.declare("dijit.form.RangeBoundTextBox", dijit.form.MappedTextBox, {
        rangeMessage: "",
        rangeCheck: function(_33b, _33c) {
            return ("min" in _33c ? (this.compare(_33b, _33c.min) >= 0) : true) && ("max" in _33c ? (this.compare(_33b, _33c.max) <= 0) : true);
        },
        isInRange: function(_33d) {
            return this.rangeCheck(this.get("value"), this.constraints);
        },
        _isDefinitelyOutOfRange: function() {
            var val = this.get("value");
            var _33e = false;
            var _33f = false;
            if ("min" in this.constraints) {
                var min = this.constraints.min;
                min = this.compare(val, ((typeof min == "number") && min >= 0 && val != 0) ? 0 : min);
                _33e = (typeof min == "number") && min < 0;
            }
            if ("max" in this.constraints) {
                var max = this.constraints.max;
                max = this.compare(val, ((typeof max != "number") || max > 0) ? max : 0);
                _33f = (typeof max == "number") && max > 0;
            }
            return _33e || _33f;
        },
        _isValidSubset: function() {
            return this.inherited(arguments) && !this._isDefinitelyOutOfRange();
        },
        isValid: function(_340) {
            return this.inherited(arguments) && ((this._isEmpty(this.textbox.value) && !this.required) || this.isInRange(_340));
        },
        getErrorMessage: function(_341) {
            var v = this.get("value");
            if (v !== null  && v !== "" && v !== undefined && (typeof v != "number" || !isNaN(v)) && !this.isInRange(_341)) {
                return this.rangeMessage;
            }
            return this.inherited(arguments);
        },
        postMixInProperties: function() {
            this.inherited(arguments);
            if (!this.rangeMessage) {
                this.messages = dojo.i18n.getLocalization("dijit.form", "validate", this.lang);
                this.rangeMessage = this.messages.rangeMessage;
            }
        },
        _setConstraintsAttr: function(_342) {
            this.inherited(arguments);
            if (this.focusNode) {
                if (this.constraints.min !== undefined) {
                    dijit.setWaiState(this.focusNode, "valuemin", this.constraints.min);
                } else {
                    dijit.removeWaiState(this.focusNode, "valuemin");
                }
                if (this.constraints.max !== undefined) {
                    dijit.setWaiState(this.focusNode, "valuemax", this.constraints.max);
                } else {
                    dijit.removeWaiState(this.focusNode, "valuemax");
                }
            }
        },
        _setValueAttr: function(_343, _344) {
            dijit.setWaiState(this.focusNode, "valuenow", _343);
            this.inherited(arguments);
        }
    });
}
if (!dojo._hasResource["smartdot.form.ValidationTextBoxPatch"]) {
    dojo._hasResource["smartdot.form.ValidationTextBoxPatch"] = true;
    dojo.provide("smartdot.form.ValidationTextBoxPatch");
    dojo.extend(dijit.form.ValidationTextBox, {
        displayMessage: function(_345) {
            var _346;
            var _347 = this.parent;
            if (_347) {
                _347 = _347.domNode;
            } else {
                _347 = this.domNode;
            }
            _346 = _347.nextSibling;
            if (_346 && _346.className == "validate-msgContainer") {
                dojo.removeClass(_347, "error");
                dojo.query("p", _346)[0].innerHTML = "";
                if (this.parent) {
                    dojo.removeClass(this.parent.DateSelecter.domNode, "error");
                    dojo.removeClass(this.parent.TimeSelecter.domNode, "error");
                    if (_345 || this.parent.DateSelecter.state == "Error" || this.parent.TimeSelecter.state == "Error") {
                        dojo.addClass(this.parent.DateSelecter.domNode, "error");
                        dojo.addClass(this.parent.TimeSelecter.domNode, "error");
                        _345 = "日期格式错误，形如：2012-3-20 11:30";
                    }
                    if (this.required && !this._focused) {
                        if (this._isEmpty(this.parent.DateSelecter.textbox.value) && this._isEmpty(this.parent.TimeSelecter.textbox.value)) {
                            dojo.addClass(this.parent.DateSelecter.domNode, "error");
                            dojo.addClass(this.parent.TimeSelecter.domNode, "error");
                            _345 = "不能为空";
                        } else {
                            if (this._isEmpty(this.parent.DateSelecter.textbox.value) || this._isEmpty(this.parent.TimeSelecter.textbox.value)) {
                                dojo.addClass(this.parent.DateSelecter.domNode, "error");
                                dojo.addClass(this.parent.TimeSelecter.domNode, "error");
                                _345 = "日期格式错误，形如：2012-3-20 11:30";
                            }
                        }
                    }
                    if (_345 && _345 != "") {
                        dojo.query("p", _346)[0].innerHTML = _345;
                        _346.style.display = "";
                    }
                } else {
                    if (_345 || this.state == "Error") {
                        dojo.addClass(_347, "error");
                        if (this.clickNode) {
                            if (dojo.hasClass(this.clickNode, "DateTextBox-button")) {
                                _345 = "日期格式错误，形如：2012-3-20";
                            } else {
                                if (dojo.hasClass(this.clickNode, "TimeTextBox-button")) {
                                    _345 = "时间格式错误，形如：11:30";
                                }
                            }
                        }
                        if (this.required) {
                            if (this._isEmpty(this.textbox.value)) {
                                if (_345 != "") {
                                    _345 = "不能为空";
                                } else {
                                    _345 = "不能为空";
                                }
                            }
                        }
                        dojo.query("p", _346)[0].innerHTML = _345;
                        _346.style.display = "";
                    }
                }
            } else {
                dijit.hideTooltip(this.domNode);
                if (_345) {
                    dijit.showTooltip(_345, this.domNode, this.tooltipPosition);
                }
            }
        }
    });
}
if (!dojo._hasResource["dojo.cldr.supplemental"]) {
    dojo._hasResource["dojo.cldr.supplemental"] = true;
    dojo.provide("dojo.cldr.supplemental");
    dojo.getObject("cldr.supplemental", true, dojo);
    dojo.cldr.supplemental.getFirstDayOfWeek = function(_348) {
        var _349 = {
            mv: 5,
            ae: 6,
            af: 6,
            bh: 6,
            dj: 6,
            dz: 6,
            eg: 6,
            er: 6,
            et: 6,
            iq: 6,
            ir: 6,
            jo: 6,
            ke: 6,
            kw: 6,
            ly: 6,
            ma: 6,
            om: 6,
            qa: 6,
            sa: 6,
            sd: 6,
            so: 6,
            sy: 6,
            tn: 6,
            ye: 6,
            ar: 0,
            as: 0,
            az: 0,
            bw: 0,
            ca: 0,
            cn: 0,
            fo: 0,
            ge: 0,
            gl: 0,
            gu: 0,
            hk: 0,
            il: 0,
            "in": 0,
            jm: 0,
            jp: 0,
            kg: 0,
            kr: 0,
            la: 0,
            mh: 0,
            mn: 0,
            mo: 0,
            mp: 0,
            mt: 0,
            nz: 0,
            ph: 0,
            pk: 0,
            sg: 0,
            th: 0,
            tt: 0,
            tw: 0,
            um: 0,
            us: 0,
            uz: 0,
            vi: 0,
            zw: 0
        };
        var _34a = dojo.cldr.supplemental._region(_348);
        var dow = _349[_34a];
        return (dow === undefined) ? 1 : dow;
    }
    ;
    dojo.cldr.supplemental._region = function(_34b) {
        _34b = dojo.i18n.normalizeLocale(_34b);
        var tags = _34b.split("-");
        var _34c = tags[1];
        if (!_34c) {
            _34c = {
                de: "de",
                en: "us",
                es: "es",
                fi: "fi",
                fr: "fr",
                he: "il",
                hu: "hu",
                it: "it",
                ja: "jp",
                ko: "kr",
                nl: "nl",
                pt: "br",
                sv: "se",
                zh: "cn"
            }[tags[0]];
        } else {
            if (_34c.length == 4) {
                _34c = tags[2];
            }
        }
        return _34c;
    }
    ;
    dojo.cldr.supplemental.getWeekend = function(_34d) {
        var _34e = {
            "in": 0,
            af: 4,
            dz: 4,
            ir: 4,
            om: 4,
            sa: 4,
            ye: 4,
            ae: 5,
            bh: 5,
            eg: 5,
            il: 5,
            iq: 5,
            jo: 5,
            kw: 5,
            ly: 5,
            ma: 5,
            qa: 5,
            sd: 5,
            sy: 5,
            tn: 5
        };
        var _34f = {
            af: 5,
            dz: 5,
            ir: 5,
            om: 5,
            sa: 5,
            ye: 5,
            ae: 6,
            bh: 5,
            eg: 6,
            il: 6,
            iq: 6,
            jo: 6,
            kw: 6,
            ly: 6,
            ma: 6,
            qa: 6,
            sd: 6,
            sy: 6,
            tn: 6
        };
        var _350 = dojo.cldr.supplemental._region(_34d);
        var _351 = _34e[_350];
        var end = _34f[_350];
        if (_351 === undefined) {
            _351 = 6;
        }
        if (end === undefined) {
            end = 0;
        }
        return {
            start: _351,
            end: end
        };
    }
    ;
}
if (!dojo._hasResource["dojo.date"]) {
    dojo._hasResource["dojo.date"] = true;
    dojo.provide("dojo.date");
    dojo.getObject("date", true, dojo);
    dojo.date.getDaysInMonth = function(_352) {
        var _353 = _352.getMonth();
        var days = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
        if (_353 == 1 && dojo.date.isLeapYear(_352)) {
            return 29;
        }
        return days[_353];
    }
    ;
    dojo.date.isLeapYear = function(_354) {
        var year = _354.getFullYear();
        return !(year % 400) || (!(year % 4) && !!(year % 100));
    }
    ;
    dojo.date.getTimezoneName = function(_355) {
        var str = _355.toString();
        var tz = "";
        var _356;
        var pos = str.indexOf("(");
        if (pos > -1) {
            tz = str.substring(++pos, str.indexOf(")"));
        } else {
            var pat = /([A-Z\/]+) \d{4}$/;
            if ((_356 = str.match(pat)) ) {
                tz = _356[1];
            } else {
                str = _355.toLocaleString();
                pat = / ([A-Z\/]+)$/;
                if ((_356 = str.match(pat)) ) {
                    tz = _356[1];
                }
            }
        }
        return (tz == "AM" || tz == "PM") ? "" : tz;
    }
    ;
    dojo.date.compare = function(_357, _358, _359) {
        _357 = new Date(+_357);
        _358 = new Date(+(_358 || new Date()));
        if (_359 == "date") {
            _357.setHours(0, 0, 0, 0);
            _358.setHours(0, 0, 0, 0);
        } else {
            if (_359 == "time") {
                _357.setFullYear(0, 0, 0);
                _358.setFullYear(0, 0, 0);
            }
        }
        if (_357 > _358) {
            return 1;
        }
        if (_357 < _358) {
            return -1;
        }
        return 0;
    }
    ;
    dojo.date.add = function(date, _35a, _35b) {
        var sum = new Date(+date);
        var _35c = false;
        var _35d = "Date";
        switch (_35a) {
        case "day":
            break;
        case "weekday":
            var days, _35e;
            var mod = _35b % 5;
            if (!mod) {
                days = (_35b > 0) ? 5 : -5;
                _35e = (_35b > 0) ? ((_35b - 5) / 5) : ((_35b + 5) / 5);
            } else {
                days = mod;
                _35e = parseInt(_35b / 5);
            }
            var strt = date.getDay();
            var adj = 0;
            if (strt == 6 && _35b > 0) {
                adj = 1;
            } else {
                if (strt == 0 && _35b < 0) {
                    adj = -1;
                }
            }
            var trgt = strt + days;
            if (trgt == 0 || trgt == 6) {
                adj = (_35b > 0) ? 2 : -2;
            }
            _35b = (7 * _35e) + days + adj;
            break;
        case "year":
            _35d = "FullYear";
            _35c = true;
            break;
        case "week":
            _35b *= 7;
            break;
        case "quarter":
            _35b *= 3;
        case "month":
            _35c = true;
            _35d = "Month";
            break;
        default:
            _35d = "UTC" + _35a.charAt(0).toUpperCase() + _35a.substring(1) + "s";
        }
        if (_35d) {
            sum["set" + _35d](sum["get" + _35d]() + _35b);
        }
        if (_35c && (sum.getDate() < date.getDate())) {
            sum.setDate(0);
        }
        return sum;
    }
    ;
    dojo.date.difference = function(_35f, _360, _361) {
        _360 = _360 || new Date();
        _361 = _361 || "day";
        var _362 = _360.getFullYear() - _35f.getFullYear();
        var _363 = 1;
        switch (_361) {
        case "quarter":
            var m1 = _35f.getMonth();
            var m2 = _360.getMonth();
            var q1 = Math.floor(m1 / 3) + 1;
            var q2 = Math.floor(m2 / 3) + 1;
            q2 += (_362 * 4);
            _363 = q2 - q1;
            break;
        case "weekday":
            var days = Math.round(dojo.date.difference(_35f, _360, "day"));
            var _364 = parseInt(dojo.date.difference(_35f, _360, "week"));
            var mod = days % 7;
            if (mod == 0) {
                days = _364 * 5;
            } else {
                var adj = 0;
                var aDay = _35f.getDay();
                var bDay = _360.getDay();
                _364 = parseInt(days / 7);
                mod = days % 7;
                var _365 = new Date(_35f);
                _365.setDate(_365.getDate() + (_364 * 7));
                var _366 = _365.getDay();
                if (days > 0) {
                    switch (true) {
                    case aDay == 6:
                        adj = -1;
                        break;
                    case aDay == 0:
                        adj = 0;
                        break;
                    case bDay == 6:
                        adj = -1;
                        break;
                    case bDay == 0:
                        adj = -2;
                        break;
                    case (_366 + mod) > 5:
                        adj = -2;
                    }
                } else {
                    if (days < 0) {
                        switch (true) {
                        case aDay == 6:
                            adj = 0;
                            break;
                        case aDay == 0:
                            adj = 1;
                            break;
                        case bDay == 6:
                            adj = 2;
                            break;
                        case bDay == 0:
                            adj = 1;
                            break;
                        case (_366 + mod) < 0:
                            adj = 2;
                        }
                    }
                }
                days += adj;
                days -= (_364 * 2);
            }
            _363 = days;
            break;
        case "year":
            _363 = _362;
            break;
        case "month":
            _363 = (_360.getMonth() - _35f.getMonth()) + (_362 * 12);
            break;
        case "week":
            _363 = parseInt(dojo.date.difference(_35f, _360, "day") / 7);
            break;
        case "day":
            _363 /= 24;
        case "hour":
            _363 /= 60;
        case "minute":
            _363 /= 60;
        case "second":
            _363 /= 1000;
        case "millisecond":
            _363 *= _360.getTime() - _35f.getTime();
        }
        return Math.round(_363);
    }
    ;
}
if (!dojo._hasResource["dojo.date.locale"]) {
    dojo._hasResource["dojo.date.locale"] = true;
    dojo.provide("dojo.date.locale");
    dojo.getObject("date.locale", true, dojo);
    (function() {
        function _367(_368, _369, _36a, _36b) {
            return _36b.replace(/([a-z])\1*/ig, function(_36c) {
                var s, pad, c = _36c.charAt(0), l = _36c.length, _36d = ["abbr", "wide", "narrow"];
                switch (c) {
                case "G":
                    s = _369[(l < 4) ? "eraAbbr" : "eraNames"][_368.getFullYear() < 0 ? 0 : 1];
                    break;
                case "y":
                    s = _368.getFullYear();
                    switch (l) {
                    case 1:
                        break;
                    case 2:
                        if (!_36a.fullYear) {
                            s = String(s);
                            s = s.substr(s.length - 2);
                            break;
                        }
                    default:
                        pad = true;
                    }
                    break;
                case "Q":
                case "q":
                    s = Math.ceil((_368.getMonth() + 1) / 3);
                    pad = true;
                    break;
                case "M":
                    var m = _368.getMonth();
                    if (l < 3) {
                        s = m + 1;
                        pad = true;
                    } else {
                        var _36e = ["months", "format", _36d[l - 3]].join("-");
                        s = _369[_36e][m];
                    }
                    break;
                case "w":
                    var _36f = 0;
                    s = dojo.date.locale._getWeekOfYear(_368, _36f);
                    pad = true;
                    break;
                case "d":
                    s = _368.getDate();
                    pad = true;
                    break;
                case "D":
                    s = dojo.date.locale._getDayOfYear(_368);
                    pad = true;
                    break;
                case "E":
                    var d = _368.getDay();
                    if (l < 3) {
                        s = d + 1;
                        pad = true;
                    } else {
                        var _370 = ["days", "format", _36d[l - 3]].join("-");
                        s = _369[_370][d];
                    }
                    break;
                case "a":
                    var _371 = (_368.getHours() < 12) ? "am" : "pm";
                    s = _36a[_371] || _369["dayPeriods-format-wide-" + _371];
                    break;
                case "h":
                case "H":
                case "K":
                case "k":
                    var h = _368.getHours();
                    switch (c) {
                    case "h":
                        s = (h % 12) || 12;
                        break;
                    case "H":
                        s = h;
                        break;
                    case "K":
                        s = (h % 12);
                        break;
                    case "k":
                        s = h || 24;
                        break;
                    }
                    pad = true;
                    break;
                case "m":
                    s = _368.getMinutes();
                    pad = true;
                    break;
                case "s":
                    s = _368.getSeconds();
                    pad = true;
                    break;
                case "S":
                    s = Math.round(_368.getMilliseconds() * Math.pow(10, l - 3));
                    pad = true;
                    break;
                case "v":
                case "z":
                    s = dojo.date.locale._getZone(_368, true, _36a);
                    if (s) {
                        break;
                    }
                    l = 4;
                case "Z":
                    var _372 = dojo.date.locale._getZone(_368, false, _36a);
                    var tz = [(_372 <= 0 ? "+" : "-"), dojo.string.pad(Math.floor(Math.abs(_372) / 60), 2), dojo.string.pad(Math.abs(_372) % 60, 2)];
                    if (l == 4) {
                        tz.splice(0, 0, "GMT");
                        tz.splice(3, 0, ":");
                    }
                    s = tz.join("");
                    break;
                default:
                    throw new Error("dojo.date.locale.format: invalid pattern char: " + _36b);
                }
                if (pad) {
                    s = dojo.string.pad(s, l);
                }
                return s;
            });
        }
        ;dojo.date.locale._getZone = function(_373, _374, _375) {
            if (_374) {
                return dojo.date.getTimezoneName(_373);
            } else {
                return _373.getTimezoneOffset();
            }
        }
        ;
        dojo.date.locale.format = function(_376, _377) {
            _377 = _377 || {};
            var _378 = dojo.i18n.normalizeLocale(_377.locale)
              , _379 = _377.formatLength || "short"
              , _37a = dojo.date.locale._getGregorianBundle(_378)
              , str = []
              , _37b = dojo.hitch(this, _367, _376, _37a, _377);
            if (_377.selector == "year") {
                return _37c(_37a["dateFormatItem-yyyy"] || "yyyy", _37b);
            }
            var _37d;
            if (_377.selector != "date") {
                _37d = _377.timePattern || _37a["timeFormat-" + _379];
                if (_37d) {
                    str.push(_37c(_37d, _37b));
                }
            }
            if (_377.selector != "time") {
                _37d = _377.datePattern || _37a["dateFormat-" + _379];
                if (_37d) {
                    str.push(_37c(_37d, _37b));
                }
            }
            return str.length == 1 ? str[0] : _37a["dateTimeFormat-" + _379].replace(/\{(\d+)\}/g, function(_37e, key) {
                return str[key];
            });
        }
        ;
        dojo.date.locale.regexp = function(_37f) {
            return dojo.date.locale._parseInfo(_37f).regexp;
        }
        ;
        dojo.date.locale._parseInfo = function(_380) {
            _380 = _380 || {};
            var _381 = dojo.i18n.normalizeLocale(_380.locale), _382 = dojo.date.locale._getGregorianBundle(_381), _383 = _380.formatLength || "short", _384 = _380.datePattern || _382["dateFormat-" + _383], _385 = _380.timePattern || _382["timeFormat-" + _383], _386;
            if (_380.selector == "date") {
                _386 = _384;
            } else {
                if (_380.selector == "time") {
                    _386 = _385;
                } else {
                    _386 = _382["dateTimeFormat-" + _383].replace(/\{(\d+)\}/g, function(_387, key) {
                        return [_385, _384][key];
                    });
                }
            }
            var _388 = []
              , re = _37c(_386, dojo.hitch(this, _389, _388, _382, _380));
            return {
                regexp: re,
                tokens: _388,
                bundle: _382
            };
        }
        ;
        dojo.date.locale.parse = function(_38a, _38b) {
            var _38c = /[\u200E\u200F\u202A\u202E]/g
              , info = dojo.date.locale._parseInfo(_38b)
              , _38d = info.tokens
              , _38e = info.bundle
              , re = new RegExp("^" + info.regexp.replace(_38c, "") + "$",info.strict ? "" : "i")
              , _38f = re.exec(_38a && _38a.replace(_38c, ""));
            if (!_38f) {
                return null ;
            }
            var _390 = ["abbr", "wide", "narrow"]
              , _391 = [1970, 0, 1, 0, 0, 0, 0]
              , amPm = ""
              , _392 = dojo.every(_38f, function(v, i) {
                if (!i) {
                    return true;
                }
                var _393 = _38d[i - 1];
                var l = _393.length;
                switch (_393.charAt(0)) {
                case "y":
                    if (l != 2 && _38b.strict) {
                        _391[0] = v;
                    } else {
                        if (v < 100) {
                            v = Number(v);
                            var year = "" + new Date().getFullYear()
                              , _394 = year.substring(0, 2) * 100
                              , _395 = Math.min(Number(year.substring(2, 4)) + 20, 99)
                              , num = (v < _395) ? _394 + v : _394 - 100 + v;
                            _391[0] = num;
                        } else {
                            if (_38b.strict) {
                                return false;
                            }
                            _391[0] = v;
                        }
                    }
                    break;
                case "M":
                    if (l > 2) {
                        var _396 = _38e["months-format-" + _390[l - 3]].concat();
                        if (!_38b.strict) {
                            v = v.replace(".", "").toLowerCase();
                            _396 = dojo.map(_396, function(s) {
                                return s.replace(".", "").toLowerCase();
                            });
                        }
                        v = dojo.indexOf(_396, v);
                        if (v == -1) {
                            return false;
                        }
                    } else {
                        v--;
                    }
                    _391[1] = v;
                    break;
                case "E":
                case "e":
                    var days = _38e["days-format-" + _390[l - 3]].concat();
                    if (!_38b.strict) {
                        v = v.toLowerCase();
                        days = dojo.map(days, function(d) {
                            return d.toLowerCase();
                        });
                    }
                    v = dojo.indexOf(days, v);
                    if (v == -1) {
                        return false;
                    }
                    break;
                case "D":
                    _391[1] = 0;
                case "d":
                    _391[2] = v;
                    break;
                case "a":
                    var am = _38b.am || _38e["dayPeriods-format-wide-am"]
                      , pm = _38b.pm || _38e["dayPeriods-format-wide-pm"];
                    if (!_38b.strict) {
                        var _397 = /\./g;
                        v = v.replace(_397, "").toLowerCase();
                        am = am.replace(_397, "").toLowerCase();
                        pm = pm.replace(_397, "").toLowerCase();
                    }
                    if (_38b.strict && v != am && v != pm) {
                        return false;
                    }
                    amPm = (v == pm) ? "p" : (v == am) ? "a" : "";
                    break;
                case "K":
                    if (v == 24) {
                        v = 0;
                    }
                case "h":
                case "H":
                case "k":
                    if (v > 23) {
                        return false;
                    }
                    _391[3] = v;
                    break;
                case "m":
                    _391[4] = v;
                    break;
                case "s":
                    _391[5] = v;
                    break;
                case "S":
                    _391[6] = v;
                }
                return true;
            });
            var _398 = +_391[3];
            if (amPm === "p" && _398 < 12) {
                _391[3] = _398 + 12;
            } else {
                if (amPm === "a" && _398 == 12) {
                    _391[3] = 0;
                }
            }
            var _399 = new Date(_391[0],_391[1],_391[2],_391[3],_391[4],_391[5],_391[6]);
            if (_38b.strict) {
                _399.setFullYear(_391[0]);
            }
            var _39a = _38d.join("")
              , _39b = _39a.indexOf("d") != -1
              , _39c = _39a.indexOf("M") != -1;
            if (!_392 || (_39c && _399.getMonth() > _391[1]) || (_39b && _399.getDate() > _391[2])) {
                return null ;
            }
            if ((_39c && _399.getMonth() < _391[1]) || (_39b && _399.getDate() < _391[2])) {
                _399 = dojo.date.add(_399, "hour", 1);
            }
            return _399;
        }
        ;
        function _37c(_39d, _39e, _39f, _3a0) {
            var _3a1 = function(x) {
                return x;
            }
            ;
            _39e = _39e || _3a1;
            _39f = _39f || _3a1;
            _3a0 = _3a0 || _3a1;
            var _3a2 = _39d.match(/(''|[^'])+/g)
              , _3a3 = _39d.charAt(0) == "'";
            dojo.forEach(_3a2, function(_3a4, i) {
                if (!_3a4) {
                    _3a2[i] = "";
                } else {
                    _3a2[i] = (_3a3 ? _39f : _39e)(_3a4.replace(/''/g, "'"));
                    _3a3 = !_3a3;
                }
            });
            return _3a0(_3a2.join(""));
        }
        ;function _389(_3a5, _3a6, _3a7, _3a8) {
            _3a8 = dojo.regexp.escapeString(_3a8);
            if (!_3a7.strict) {
                _3a8 = _3a8.replace(" a", " ?a");
            }
            return _3a8.replace(/([a-z])\1*/ig, function(_3a9) {
                var s, c = _3a9.charAt(0), l = _3a9.length, p2 = "", p3 = "";
                if (_3a7.strict) {
                    if (l > 1) {
                        p2 = "0" + "{" + (l - 1) + "}";
                    }
                    if (l > 2) {
                        p3 = "0" + "{" + (l - 2) + "}";
                    }
                } else {
                    p2 = "0?";
                    p3 = "0{0,2}";
                }
                switch (c) {
                case "y":
                    s = "\\d{2,4}";
                    break;
                case "M":
                    s = (l > 2) ? "\\S+?" : "1[0-2]|" + p2 + "[1-9]";
                    break;
                case "D":
                    s = "[12][0-9][0-9]|3[0-5][0-9]|36[0-6]|" + p3 + "[1-9][0-9]|" + p2 + "[1-9]";
                    break;
                case "d":
                    s = "3[01]|[12]\\d|" + p2 + "[1-9]";
                    break;
                case "w":
                    s = "[1-4][0-9]|5[0-3]|" + p2 + "[1-9]";
                    break;
                case "E":
                    s = "\\S+";
                    break;
                case "h":
                    s = "1[0-2]|" + p2 + "[1-9]";
                    break;
                case "k":
                    s = "1[01]|" + p2 + "\\d";
                    break;
                case "H":
                    s = "1\\d|2[0-3]|" + p2 + "\\d";
                    break;
                case "K":
                    s = "1\\d|2[0-4]|" + p2 + "[1-9]";
                    break;
                case "m":
                case "s":
                    s = "[0-5]\\d";
                    break;
                case "S":
                    s = "\\d{" + l + "}";
                    break;
                case "a":
                    var am = _3a7.am || _3a6["dayPeriods-format-wide-am"]
                      , pm = _3a7.pm || _3a6["dayPeriods-format-wide-pm"];
                    s = am + "|" + pm;
                    if (!_3a7.strict) {
                        if (am != am.toLowerCase()) {
                            s += "|" + am.toLowerCase();
                        }
                        if (pm != pm.toLowerCase()) {
                            s += "|" + pm.toLowerCase();
                        }
                        if (s.indexOf(".") != -1) {
                            s += "|" + s.replace(/\./g, "");
                        }
                    }
                    s = s.replace(/\./g, "\\.");
                    break;
                default:
                    s = ".*";
                }
                if (_3a5) {
                    _3a5.push(_3a9);
                }
                return "(" + s + ")";
            }).replace(/[\xa0 ]/g, "[\\s\\xa0]");
        }
        ;
    })();
    (function() {
        var _3aa = [];
        dojo.date.locale.addCustomFormats = function(_3ab, _3ac) {
            _3aa.push({
                pkg: _3ab,
                name: _3ac
            });
        }
        ;
        dojo.date.locale._getGregorianBundle = function(_3ad) {
            var _3ae = {};
            dojo.forEach(_3aa, function(desc) {
                var _3af = dojo.i18n.getLocalization(desc.pkg, desc.name, _3ad);
                _3ae = dojo.mixin(_3ae, _3af);
            }, this);
            return _3ae;
        }
        ;
    })();
    dojo.date.locale.addCustomFormats("dojo.cldr", "gregorian");
    dojo.date.locale.getNames = function(item, type, _3b0, _3b1) {
        var _3b2, _3b3 = dojo.date.locale._getGregorianBundle(_3b1), _3b4 = [item, _3b0, type];
        if (_3b0 == "standAlone") {
            var key = _3b4.join("-");
            _3b2 = _3b3[key];
            if (_3b2[0] == 1) {
                _3b2 = undefined;
            }
        }
        _3b4[1] = "format";
        return (_3b2 || _3b3[_3b4.join("-")]).concat();
    }
    ;
    dojo.date.locale.isWeekend = function(_3b5, _3b6) {
        var _3b7 = dojo.cldr.supplemental.getWeekend(_3b6)
          , day = (_3b5 || new Date()).getDay();
        if (_3b7.end < _3b7.start) {
            _3b7.end += 7;
            if (day < _3b7.start) {
                day += 7;
            }
        }
        return day >= _3b7.start && day <= _3b7.end;
    }
    ;
    dojo.date.locale._getDayOfYear = function(_3b8) {
        return dojo.date.difference(new Date(_3b8.getFullYear(),0,1,_3b8.getHours()), _3b8) + 1;
    }
    ;
    dojo.date.locale._getWeekOfYear = function(_3b9, _3ba) {
        if (arguments.length == 1) {
            _3ba = 0;
        }
        var _3bb = new Date(_3b9.getFullYear(),0,1).getDay()
          , adj = (_3bb - _3ba + 7) % 7
          , week = Math.floor((dojo.date.locale._getDayOfYear(_3b9) + adj - 1) / 7);
        if (_3bb == _3ba) {
            week++;
        }
        return week;
    }
    ;
}
if (!dojo._hasResource["dijit.form.DropDownButton"]) {
    dojo._hasResource["dijit.form.DropDownButton"] = true;
    dojo.provide("dijit.form.DropDownButton");
}
if (!dojo._hasResource["dijit.Calendar"]) {
    dojo._hasResource["dijit.Calendar"] = true;
    dojo.provide("dijit.Calendar");
    dojo.declare("dijit.Calendar", [dijit._Widget, dijit._Templated, dijit._CssStateMixin], {
        templateString: dojo.cache("dijit", "templates/Calendar.html", "<table cellspacing=\"0\" cellpadding=\"0\" class=\"dijitCalendarContainer\" role=\"grid\" dojoAttachEvent=\"onkeypress: _onKeyPress\" aria-labelledby=\"${id}_year\">\r\n\t<thead>\r\n\t\t<tr class=\"dijitReset dijitCalendarMonthContainer\" valign=\"top\">\r\n\t\t\t<th class='dijitReset dijitCalendarArrow' dojoAttachPoint=\"decrementMonth\">\r\n\t\t\t\t<img src=\"${_blankGif}\" alt=\"\" class=\"dijitCalendarIncrementControl dijitCalendarDecrease\" role=\"presentation\"/>\r\n\t\t\t\t<span dojoAttachPoint=\"decreaseArrowNode\" class=\"dijitA11ySideArrow\">-</span>\r\n\t\t\t</th>\r\n\t\t\t<th class='dijitReset' colspan=\"5\">\r\n\t\t\t\t<div dojoType=\"dijit.form.DropDownButton\" dojoAttachPoint=\"monthDropDownButton\"\r\n\t\t\t\t\tid=\"${id}_mddb\" tabIndex=\"-1\">\r\n\t\t\t\t</div>\r\n\t\t\t</th>\r\n\t\t\t<th class='dijitReset dijitCalendarArrow' dojoAttachPoint=\"incrementMonth\">\r\n\t\t\t\t<img src=\"${_blankGif}\" alt=\"\" class=\"dijitCalendarIncrementControl dijitCalendarIncrease\" role=\"presentation\"/>\r\n\t\t\t\t<span dojoAttachPoint=\"increaseArrowNode\" class=\"dijitA11ySideArrow\">+</span>\r\n\t\t\t</th>\r\n\t\t</tr>\r\n\t\t<tr>\r\n\t\t\t<th class=\"dijitReset dijitCalendarDayLabelTemplate\" role=\"columnheader\"><span class=\"dijitCalendarDayLabel\"></span></th>\r\n\t\t</tr>\r\n\t</thead>\r\n\t<tbody dojoAttachEvent=\"onclick: _onDayClick, onmouseover: _onDayMouseOver, onmouseout: _onDayMouseOut, onmousedown: _onDayMouseDown, onmouseup: _onDayMouseUp\" class=\"dijitReset dijitCalendarBodyContainer\">\r\n\t\t<tr class=\"dijitReset dijitCalendarWeekTemplate\" role=\"row\">\r\n\t\t\t<td class=\"dijitReset dijitCalendarDateTemplate\" role=\"gridcell\"><span class=\"dijitCalendarDateLabel\"></span></td>\r\n\t\t</tr>\r\n\t</tbody>\r\n\t<tfoot class=\"dijitReset dijitCalendarYearContainer\">\r\n\t\t<tr>\r\n\t\t\t<td class='dijitReset' valign=\"top\" colspan=\"7\">\r\n\t\t\t\t<h3 class=\"dijitCalendarYearLabel\">\r\n\t\t\t\t\t<span dojoAttachPoint=\"previousYearLabelNode\" class=\"dijitInline dijitCalendarPreviousYear\"></span>\r\n\t\t\t\t\t<span dojoAttachPoint=\"currentYearLabelNode\" class=\"dijitInline dijitCalendarSelectedYear\" id=\"${id}_year\"></span>\r\n\t\t\t\t\t<span dojoAttachPoint=\"nextYearLabelNode\" class=\"dijitInline dijitCalendarNextYear\"></span>\r\n\t\t\t\t</h3>\r\n\t\t\t</td>\r\n\t\t</tr>\r\n\t</tfoot>\r\n</table>\r\n"),
        widgetsInTemplate: true,
        value: new Date(""),
        datePackage: "dojo.date",
        dayWidth: "narrow",
        tabIndex: "0",
        currentFocus: new Date(),
        baseClass: "dijitCalendar",
        cssStateNodes: {
            "decrementMonth": "dijitCalendarArrow",
            "incrementMonth": "dijitCalendarArrow",
            "previousYearLabelNode": "dijitCalendarPreviousYear",
            "nextYearLabelNode": "dijitCalendarNextYear"
        },
        _isValidDate: function(_3bc) {
            return _3bc && !isNaN(_3bc) && typeof _3bc == "object" && _3bc.toString() != this.constructor.prototype.value.toString();
        },
        setValue: function(_3bd) {
            dojo.deprecated("dijit.Calendar:setValue() is deprecated.  Use set('value', ...) instead.", "", "2.0");
            this.set("value", _3bd);
        },
        _getValueAttr: function() {
            var _3be = new this.dateClassObj(this.value);
            _3be.setHours(0, 0, 0, 0);
            if (_3be.getDate() < this.value.getDate()) {
                _3be = this.dateFuncObj.add(_3be, "hour", 1);
            }
            return _3be;
        },
        _setValueAttr: function(_3bf, _3c0) {
            if (_3bf) {
                _3bf = new this.dateClassObj(_3bf);
            }
            if (this._isValidDate(_3bf)) {
                if (!this._isValidDate(this.value) || this.dateFuncObj.compare(_3bf, this.value)) {
                    _3bf.setHours(1, 0, 0, 0);
                    if (!this.isDisabledDate(_3bf, this.lang)) {
                        this._set("value", _3bf);
                        this.set("currentFocus", _3bf);
                        if (_3c0 || typeof _3c0 == "undefined") {
                            this.onChange(this.get("value"));
                            this.onValueSelected(this.get("value"));
                        }
                    }
                }
            } else {
                this._set("value", null );
                this.set("currentFocus", this.currentFocus);
            }
        },
        _setText: function(node, text) {
            while (node.firstChild) {
                node.removeChild(node.firstChild);
            }
            node.appendChild(dojo.doc.createTextNode(text));
        },
        _populateGrid: function() {
            var _3c1 = new this.dateClassObj(this.currentFocus);
            _3c1.setDate(1);
            var _3c2 = _3c1.getDay()
              , _3c3 = this.dateFuncObj.getDaysInMonth(_3c1)
              , _3c4 = this.dateFuncObj.getDaysInMonth(this.dateFuncObj.add(_3c1, "month", -1))
              , _3c5 = new this.dateClassObj()
              , _3c6 = dojo.cldr.supplemental.getFirstDayOfWeek(this.lang);
            if (_3c6 > _3c2) {
                _3c6 -= 7;
            }
            dojo.query(".dijitCalendarDateTemplate", this.domNode).forEach(function(_3c7, i) {
                i += _3c6;
                var date = new this.dateClassObj(_3c1), _3c8, _3c9 = "dijitCalendar", adj = 0;
                if (i < _3c2) {
                    _3c8 = _3c4 - _3c2 + i + 1;
                    adj = -1;
                    _3c9 += "Previous";
                } else {
                    if (i >= (_3c2 + _3c3)) {
                        _3c8 = i - _3c2 - _3c3 + 1;
                        adj = 1;
                        _3c9 += "Next";
                    } else {
                        _3c8 = i - _3c2 + 1;
                        _3c9 += "Current";
                    }
                }
                if (adj) {
                    date = this.dateFuncObj.add(date, "month", adj);
                }
                date.setDate(_3c8);
                if (!this.dateFuncObj.compare(date, _3c5, "date")) {
                    _3c9 = "dijitCalendarCurrentDate " + _3c9;
                }
                if (this._isSelectedDate(date, this.lang)) {
                    _3c9 = "dijitCalendarSelectedDate " + _3c9;
                }
                if (this.isDisabledDate(date, this.lang)) {
                    _3c9 = "dijitCalendarDisabledDate " + _3c9;
                }
                var _3ca = this.getClassForDate(date, this.lang);
                if (_3ca) {
                    _3c9 = _3ca + " " + _3c9;
                }
                _3c7.className = _3c9 + "Month dijitCalendarDateTemplate";
                _3c7.dijitDateValue = date.valueOf();
                dojo.attr(_3c7, "dijitDateValue", date.valueOf());
                var _3cb = dojo.query(".dijitCalendarDateLabel", _3c7)[0]
                  , text = date.getDateLocalized ? date.getDateLocalized(this.lang) : date.getDate();
                this._setText(_3cb, text);
            }, this);
            var _3cc = this.dateLocaleModule.getNames("months", "wide", "standAlone", this.lang, _3c1);
            this.monthDropDownButton.dropDown.set("months", _3cc);
            this.monthDropDownButton.containerNode.innerHTML = (dojo.isIE == 6 ? "" : "<div class='dijitSpacer'>" + this.monthDropDownButton.dropDown.domNode.innerHTML + "</div>") + "<div class='dijitCalendarMonthLabel dijitCalendarCurrentMonthLabel'>" + _3cc[_3c1.getMonth()] + "</div>";
            var y = _3c1.getFullYear() - 1;
            var d = new this.dateClassObj();
            dojo.forEach(["previous", "current", "next"], function(name) {
                d.setFullYear(y++);
                this._setText(this[name + "YearLabelNode"], this.dateLocaleModule.format(d, {
                    selector: "year",
                    locale: this.lang
                }));
            }, this);
        },
        goToToday: function() {
            this.set("value", new this.dateClassObj());
        },
        constructor: function(args) {
            var _3cd = (args.datePackage && (args.datePackage != "dojo.date")) ? args.datePackage + ".Date" : "Date";
            this.dateClassObj = dojo.getObject(_3cd, false);
            this.datePackage = args.datePackage || this.datePackage;
            this.dateFuncObj = dojo.getObject(this.datePackage, false);
            this.dateLocaleModule = dojo.getObject(this.datePackage + ".locale", false);
        },
        postMixInProperties: function() {
            if (isNaN(this.value)) {
                delete this.value;
            }
            this.inherited(arguments);
        },
        buildRendering: function() {
            this.inherited(arguments);
            dojo.setSelectable(this.domNode, false);
            var _3ce = dojo.hitch(this, function(_3cf, n) {
                var _3d0 = dojo.query(_3cf, this.domNode)[0];
                for (var i = 0; i < n; i++) {
                    _3d0.parentNode.appendChild(_3d0.cloneNode(true));
                }
            });
            _3ce(".dijitCalendarDayLabelTemplate", 6);
            _3ce(".dijitCalendarDateTemplate", 6);
            _3ce(".dijitCalendarWeekTemplate", 5);
            var _3d1 = this.dateLocaleModule.getNames("days", this.dayWidth, "standAlone", this.lang);
            var _3d2 = dojo.cldr.supplemental.getFirstDayOfWeek(this.lang);
            dojo.query(".dijitCalendarDayLabel", this.domNode).forEach(function(_3d3, i) {
                this._setText(_3d3, _3d1[(i + _3d2) % 7]);
            }, this);
            var _3d4 = new this.dateClassObj(this.currentFocus);
            this.monthDropDownButton.dropDown = new dijit.Calendar._MonthDropDown({
                id: this.id + "_mdd",
                onChange: dojo.hitch(this, "_onMonthSelect")
            });
            this.set("currentFocus", _3d4, false);
            var _3d5 = this;
            var _3d6 = function(_3d7, _3d8, adj) {
                _3d5._connects.push(dijit.typematic.addMouseListener(_3d5[_3d7], _3d5, function(_3d9) {
                    if (_3d9 >= 0) {
                        _3d5._adjustDisplay(_3d8, adj);
                    }
                }, 0.8, 500));
            }
            ;
            _3d6("incrementMonth", "month", 1);
            _3d6("decrementMonth", "month", -1);
            _3d6("nextYearLabelNode", "year", 1);
            _3d6("previousYearLabelNode", "year", -1);
        },
        _adjustDisplay: function(part, _3da) {
            this._setCurrentFocusAttr(this.dateFuncObj.add(this.currentFocus, part, _3da));
        },
        _setCurrentFocusAttr: function(date, _3db) {
            var _3dc = this.currentFocus
              , _3dd = _3dc ? dojo.query("[dijitDateValue=" + _3dc.valueOf() + "]", this.domNode)[0] : null ;
            date = new this.dateClassObj(date);
            date.setHours(1, 0, 0, 0);
            this._set("currentFocus", date);
            this._populateGrid();
            var _3de = dojo.query("[dijitDateValue=" + date.valueOf() + "]", this.domNode)[0];
            _3de.setAttribute("tabIndex", this.tabIndex);
            if (this._focused || _3db) {
                _3de.focus();
            }
            if (_3dd && _3dd != _3de) {
                if (dojo.isWebKit) {
                    _3dd.setAttribute("tabIndex", "-1");
                } else {
                    _3dd.removeAttribute("tabIndex");
                }
            }
        },
        focus: function() {
            this._setCurrentFocusAttr(this.currentFocus, true);
        },
        _onMonthSelect: function(_3df) {
            this.currentFocus = this.dateFuncObj.add(this.currentFocus, "month", _3df - this.currentFocus.getMonth());
            this._populateGrid();
        },
        _onDayClick: function(evt) {
            dojo.stopEvent(evt);
            for (var node = evt.target; node && !node.dijitDateValue; node = node.parentNode) {}
            if (node && !dojo.hasClass(node, "dijitCalendarDisabledDate")) {
                this.set("value", node.dijitDateValue);
            }
        },
        _onDayMouseOver: function(evt) {
            var node = dojo.hasClass(evt.target, "dijitCalendarDateLabel") ? evt.target.parentNode : evt.target;
            if (node && (node.dijitDateValue || node == this.previousYearLabelNode || node == this.nextYearLabelNode)) {
                dojo.addClass(node, "dijitCalendarHoveredDate");
                this._currentNode = node;
            }
        },
        _onDayMouseOut: function(evt) {
            if (!this._currentNode) {
                return;
            }
            if (evt.relatedTarget && evt.relatedTarget.parentNode == this._currentNode) {
                return;
            }
            var cls = "dijitCalendarHoveredDate";
            if (dojo.hasClass(this._currentNode, "dijitCalendarActiveDate")) {
                cls += " dijitCalendarActiveDate";
            }
            dojo.removeClass(this._currentNode, cls);
            this._currentNode = null ;
        },
        _onDayMouseDown: function(evt) {
            var node = evt.target.parentNode;
            if (node && node.dijitDateValue) {
                dojo.addClass(node, "dijitCalendarActiveDate");
                this._currentNode = node;
            }
        },
        _onDayMouseUp: function(evt) {
            var node = evt.target.parentNode;
            if (node && node.dijitDateValue) {
                dojo.removeClass(node, "dijitCalendarActiveDate");
            }
        },
        handleKey: function(evt) {
            var dk = dojo.keys, _3e0 = -1, _3e1, _3e2 = this.currentFocus;
            switch (evt.keyCode) {
            case dk.RIGHT_ARROW:
                _3e0 = 1;
            case dk.LEFT_ARROW:
                _3e1 = "day";
                if (!this.isLeftToRight()) {
                    _3e0 *= -1;
                }
                break;
            case dk.DOWN_ARROW:
                _3e0 = 1;
            case dk.UP_ARROW:
                _3e1 = "week";
                break;
            case dk.PAGE_DOWN:
                _3e0 = 1;
            case dk.PAGE_UP:
                _3e1 = evt.ctrlKey || evt.altKey ? "year" : "month";
                break;
            case dk.END:
                _3e2 = this.dateFuncObj.add(_3e2, "month", 1);
                _3e1 = "day";
            case dk.HOME:
                _3e2 = new this.dateClassObj(_3e2);
                _3e2.setDate(1);
                break;
            case dk.ENTER:
            case dk.SPACE:
                this.set("value", this.currentFocus);
                break;
            default:
                return true;
            }
            if (_3e1) {
                _3e2 = this.dateFuncObj.add(_3e2, _3e1, _3e0);
            }
            this._setCurrentFocusAttr(_3e2);
            return false;
        },
        _onKeyPress: function(evt) {
            if (!this.handleKey(evt)) {
                dojo.stopEvent(evt);
            }
        },
        onValueSelected: function(date) {},
        onChange: function(date) {},
        _isSelectedDate: function(_3e3, _3e4) {
            return this._isValidDate(this.value) && !this.dateFuncObj.compare(_3e3, this.value, "date");
        },
        isDisabledDate: function(_3e5, _3e6) {},
        getClassForDate: function(_3e7, _3e8) {}
    });
    dojo.declare("dijit.Calendar._MonthDropDown", [dijit._Widget, dijit._Templated], {
        months: [],
        templateString: "<div class='dijitCalendarMonthMenu dijitMenu' " + "dojoAttachEvent='onclick:_onClick,onmouseover:_onMenuHover,onmouseout:_onMenuHover'></div>",
        _setMonthsAttr: function(_3e9) {
            this.domNode.innerHTML = dojo.map(_3e9, function(_3ea, idx) {
                return _3ea ? "<div class='dijitCalendarMonthLabel' month='" + idx + "'>" + _3ea + "</div>" : "";
            }).join("");
        },
        _onClick: function(evt) {
            this.onChange(dojo.attr(evt.target, "month"));
        },
        onChange: function(_3eb) {},
        _onMenuHover: function(evt) {
            dojo.toggleClass(evt.target, "dijitCalendarMonthLabelHover", evt.type == "mouseover");
        }
    });
}
if (!dojo._hasResource["dijit.form._DateTimeTextBox"]) {
    dojo._hasResource["dijit.form._DateTimeTextBox"] = true;
    dojo.provide("dijit.form._DateTimeTextBox");
    new Date("X");
    dojo.declare("dijit.form._DateTimeTextBox", [dijit.form.RangeBoundTextBox, dijit._HasDropDown], {
        templateString: dojo.cache("dijit.form", "templates/DropDownBox.html", "<div class=\"dijit dijitReset dijitInlineTable dijitLeft\"\r\n\tid=\"widget_${id}\"\r\n\trole=\"combobox\"\r\n\t><div class='dijitReset dijitRight dijitButtonNode dijitArrowButton dijitDownArrowButton dijitArrowButtonContainer'\r\n\t\tdojoAttachPoint=\"_buttonNode, _popupStateNode\" role=\"presentation\"\r\n\t\t><input class=\"dijitReset dijitInputField dijitArrowButtonInner\" value=\"&#9660; \" type=\"text\" tabIndex=\"-1\" readonly=\"readonly\" role=\"presentation\"\r\n\t\t\t${_buttonInputDisabled}\r\n\t/></div\r\n\t><div class='dijitReset dijitValidationContainer'\r\n\t\t><input class=\"dijitReset dijitInputField dijitValidationIcon dijitValidationInner\" value=\"&#935; \" type=\"text\" tabIndex=\"-1\" readonly=\"readonly\" role=\"presentation\"\r\n\t/></div\r\n\t><div class=\"dijitReset dijitInputField dijitInputContainer\"\r\n\t\t><input class='dijitReset dijitInputInner' ${!nameAttrSetting} type=\"text\" autocomplete=\"off\"\r\n\t\t\tdojoAttachPoint=\"textbox,focusNode\" role=\"textbox\" aria-haspopup=\"true\"\r\n\t/></div\r\n></div>\r\n"),
        hasDownArrow: true,
        openOnClick: true,
        regExpGen: dojo.date.locale.regexp,
        datePackage: "dojo.date",
        compare: function(val1, val2) {
            var _3ec = this._isInvalidDate(val1);
            var _3ed = this._isInvalidDate(val2);
            return _3ec ? (_3ed ? 0 : -1) : (_3ed ? 1 : dojo.date.compare(val1, val2, this._selector));
        },
        forceWidth: true,
        format: function(_3ee, _3ef) {
            if (!_3ee) {
                return "";
            }
            return this.dateLocaleModule.format(_3ee, _3ef);
        },
        "parse": function(_3f0, _3f1) {
            return this.dateLocaleModule.parse(_3f0, _3f1) || (this._isEmpty(_3f0) ? null  : undefined);
        },
        serialize: function(val, _3f2) {
            if (val.toGregorian) {
                val = val.toGregorian();
            }
            return dojo.date.stamp.toISOString(val, _3f2);
        },
        dropDownDefaultValue: new Date(),
        value: new Date(""),
        _blankValue: null ,
        popupClass: "",
        _selector: "",
        constructor: function(args) {
            var _3f3 = args.datePackage ? args.datePackage + ".Date" : "Date";
            this.dateClassObj = dojo.getObject(_3f3, false);
            this.value = new this.dateClassObj("");
            this.datePackage = args.datePackage || this.datePackage;
            this.dateLocaleModule = dojo.getObject(this.datePackage + ".locale", false);
            this.regExpGen = this.dateLocaleModule.regexp;
            this._invalidDate = dijit.form._DateTimeTextBox.prototype.value.toString();
        },
        buildRendering: function() {
            this.inherited(arguments);
            if (!this.hasDownArrow) {
                this._buttonNode.style.display = "none";
            }
            if (this.openOnClick || !this.hasDownArrow) {
                this._buttonNode = this.domNode;
                this.baseClass += " dijitComboBoxOpenOnClick";
            }
        },
        _setConstraintsAttr: function(_3f4) {
            _3f4.selector = this._selector;
            _3f4.fullYear = true;
            var _3f5 = dojo.date.stamp.fromISOString;
            if (typeof _3f4.min == "string") {
                _3f4.min = _3f5(_3f4.min);
            }
            if (typeof _3f4.max == "string") {
                _3f4.max = _3f5(_3f4.max);
            }
            this.inherited(arguments);
        },
        _isInvalidDate: function(_3f6) {
            return !_3f6 || isNaN(_3f6) || typeof _3f6 != "object" || _3f6.toString() == this._invalidDate;
        },
        _setValueAttr: function(_3f7, _3f8, _3f9) {
            if (_3f7 !== undefined) {
                if (typeof _3f7 == "string") {
                    _3f7 = dojo.date.stamp.fromISOString(_3f7);
                }
                if (this._isInvalidDate(_3f7)) {
                    _3f7 = null ;
                }
                if (_3f7 instanceof Date && !(this.dateClassObj instanceof Date)) {
                    _3f7 = new this.dateClassObj(_3f7);
                }
            }
            this.inherited(arguments);
            if (this.dropDown) {
                this.dropDown.set("value", _3f7, false);
            }
        },
        _set: function(attr, _3fa) {
            if (attr == "value" && this.value instanceof Date && this.compare(_3fa, this.value) == 0) {
                return;
            }
            this.inherited(arguments);
        },
        _setDropDownDefaultValueAttr: function(val) {
            if (this._isInvalidDate(val)) {
                val = new this.dateClassObj();
            }
            this.dropDownDefaultValue = val;
        },
        openDropDown: function(_3fb) {
            if (this.dropDown) {
                this.dropDown.destroy();
            }
            var _3fc = dojo.getObject(this.popupClass, false)
              , _3fd = this
              , _3fe = this.get("value");
            this.dropDown = new _3fc({
                onChange: function(_3ff) {
                    dijit.form._DateTimeTextBox.superclass._setValueAttr.call(_3fd, _3ff, true);
                },
                id: this.id + "_popup",
                dir: _3fd.dir,
                lang: _3fd.lang,
                value: _3fe,
                currentFocus: !this._isInvalidDate(_3fe) ? _3fe : this.dropDownDefaultValue,
                constraints: _3fd.constraints,
                filterString: _3fd.filterString,
                datePackage: _3fd.datePackage,
                isDisabledDate: function(date) {
                    return !_3fd.rangeCheck(date, _3fd.constraints);
                }
            });
            this.inherited(arguments);
        },
        _getDisplayedValueAttr: function() {
            return this.textbox.value;
        },
        _setDisplayedValueAttr: function(_400, _401) {
            this._setValueAttr(this.parse(_400, this.constraints), _401, _400);
        }
    });
}
if (!dojo._hasResource["dijit.form.DateTextBox"]) {
    dojo._hasResource["dijit.form.DateTextBox"] = true;
    dojo.provide("dijit.form.DateTextBox");
    dojo.declare("dijit.form.DateTextBox", dijit.form._DateTimeTextBox, {
        baseClass: "dijitTextBox dijitComboBox dijitDateTextBox",
        popupClass: "dijit.Calendar",
        _selector: "date",
        value: new Date("")
    });
}
if (!dojo._hasResource["smartdot.form.DateTextBox"]) {
    dojo._hasResource["smartdot.form.DateTextBox"] = true;
    dojo.provide("smartdot.form.DateTextBox");
    dojo.declare("smartdot.form.DateTextBox", dijit.form.DateTextBox, {
        _onFocus: function() {
            return;
        },
        preamble: function(arg, node) {
            if (!!node) {
                arg.oriNode = node.cloneNode(true);
                dojo.removeAttr(arg.oriNode, "dojoType");
            }
        },
        buildRendering: function() {
            this.inherited(arguments);
            if (!!this.oriNode) {
                dojo.destroy(this.valueNode);
                this.valueNode = this.oriNode;
                dojo.place(this.valueNode, this.focusNode, "after");
                dojo.style(this.valueNode, {
                    display: "none"
                });
            }
            dojo.addClass(this.domNode, "smartdotTextBox");
            dojo.addClass(this.domNode, "smartdotDateTextBox");
        }
    });
}
if (!dojo._hasResource["dijit._TimePicker"]) {
    dojo._hasResource["dijit._TimePicker"] = true;
    dojo.provide("dijit._TimePicker");
    dojo.declare("dijit._TimePicker", [dijit._Widget, dijit._Templated], {
        templateString: dojo.cache("dijit", "templates/TimePicker.html", "<div id=\"widget_${id}\" class=\"dijitMenu\"\r\n    ><div dojoAttachPoint=\"upArrow\" class=\"dijitButtonNode dijitUpArrowButton\" dojoAttachEvent=\"onmouseenter:_buttonMouse,onmouseleave:_buttonMouse\"\r\n\t\t><div class=\"dijitReset dijitInline dijitArrowButtonInner\" role=\"presentation\">&nbsp;</div\r\n\t\t><div class=\"dijitArrowButtonChar\">&#9650;</div></div\r\n    ><div dojoAttachPoint=\"timeMenu,focusNode\" dojoAttachEvent=\"onclick:_onOptionSelected,onmouseover,onmouseout\"></div\r\n    ><div dojoAttachPoint=\"downArrow\" class=\"dijitButtonNode dijitDownArrowButton\" dojoAttachEvent=\"onmouseenter:_buttonMouse,onmouseleave:_buttonMouse\"\r\n\t\t><div class=\"dijitReset dijitInline dijitArrowButtonInner\" role=\"presentation\">&nbsp;</div\r\n\t\t><div class=\"dijitArrowButtonChar\">&#9660;</div></div\r\n></div>\r\n"),
        baseClass: "dijitTimePicker",
        clickableIncrement: "T00:15:00",
        visibleIncrement: "T01:00:00",
        visibleRange: "T05:00:00",
        value: new Date(),
        _visibleIncrement: 2,
        _clickableIncrement: 1,
        _totalIncrements: 10,
        constraints: {},
        serialize: dojo.date.stamp.toISOString,
        setValue: function(_402) {
            dojo.deprecated("dijit._TimePicker:setValue() is deprecated.  Use set('value', ...) instead.", "", "2.0");
            this.set("value", _402);
        },
        _setValueAttr: function(date) {
            this._set("value", date);
            this._showText();
        },
        _setFilterStringAttr: function(val) {
            this._set("filterString", val);
            this._showText();
        },
        isDisabledDate: function(_403, _404) {
            return false;
        },
        _getFilteredNodes: function(_405, _406, _407, _408) {
            var _409 = [], _40a = _408 ? _408.date : this._refDate, n, i = _405, max = this._maxIncrement + Math.abs(i), chk = _407 ? -1 : 1, dec = _407 ? 1 : 0, inc = 1 - dec;
            do {
                i = i - dec;
                n = this._createOption(i);
                if (n) {
                    if ((_407 && n.date > _40a) || (!_407 && n.date < _40a)) {
                        break;
                    }
                    _409[_407 ? "unshift" : "push"](n);
                    _40a = n.date;
                }
                i = i + inc;
            } while (_409.length < _406 && (i * chk) < max);return _409;
        },
        _showText: function() {
            var _40b = dojo.date.stamp.fromISOString;
            this.timeMenu.innerHTML = "";
            this._clickableIncrementDate = _40b(this.clickableIncrement);
            this._visibleIncrementDate = _40b(this.visibleIncrement);
            this._visibleRangeDate = _40b(this.visibleRange);
            var _40c = function(date) {
                return date.getHours() * 60 * 60 + date.getMinutes() * 60 + date.getSeconds();
            }
              , _40d = _40c(this._clickableIncrementDate)
              , _40e = _40c(this._visibleIncrementDate)
              , _40f = _40c(this._visibleRangeDate)
              , time = (this.value || this.currentFocus).getTime();
            this._refDate = new Date(time - time % (_40e * 1000));
            this._refDate.setFullYear(1970, 0, 1);
            this._clickableIncrement = 1;
            this._totalIncrements = _40f / _40d;
            this._visibleIncrement = _40e / _40d;
            this._maxIncrement = (60 * 60 * 24) / _40d;
            var _410 = this._getFilteredNodes(0, Math.min(this._totalIncrements >> 1, 10) - 1)
              , _411 = this._getFilteredNodes(0, Math.min(this._totalIncrements, 10) - _410.length, true, _410[0]);
            dojo.forEach(_411.concat(_410), function(n) {
                this.timeMenu.appendChild(n);
            }, this);
        },
        constructor: function() {
            this.constraints = {};
        },
        postMixInProperties: function() {
            this.inherited(arguments);
            this._setConstraintsAttr(this.constraints);
        },
        _setConstraintsAttr: function(_412) {
            dojo.mixin(this, _412);
            if (!_412.locale) {
                _412.locale = this.lang;
            }
        },
        postCreate: function() {
            this.connect(this.timeMenu, dojo.isIE ? "onmousewheel" : "DOMMouseScroll", "_mouseWheeled");
            this._connects.push(dijit.typematic.addMouseListener(this.upArrow, this, "_onArrowUp", 33, 250));
            this._connects.push(dijit.typematic.addMouseListener(this.downArrow, this, "_onArrowDown", 33, 250));
            this.inherited(arguments);
        },
        _buttonMouse: function(e) {
            dojo.toggleClass(e.currentTarget, e.currentTarget == this.upArrow ? "dijitUpArrowHover" : "dijitDownArrowHover", e.type == "mouseenter" || e.type == "mouseover");
        },
        _createOption: function(_413) {
            var date = new Date(this._refDate);
            var _414 = this._clickableIncrementDate;
            date.setHours(date.getHours() + _414.getHours() * _413, date.getMinutes() + _414.getMinutes() * _413, date.getSeconds() + _414.getSeconds() * _413);
            if (this.constraints.selector == "time") {
                date.setFullYear(1970, 0, 1);
            }
            var _415 = dojo.date.locale.format(date, this.constraints);
            if (this.filterString && _415.toLowerCase().indexOf(this.filterString) !== 0) {
                return null ;
            }
            var div = dojo.create("div", {
                "class": this.baseClass + "Item"
            });
            div.date = date;
            div.index = _413;
            dojo.create("div", {
                "class": this.baseClass + "ItemInner",
                innerHTML: _415
            }, div);
            if (_413 % this._visibleIncrement < 1 && _413 % this._visibleIncrement > -1) {
                dojo.addClass(div, this.baseClass + "Marker");
            } else {
                if (!(_413 % this._clickableIncrement)) {
                    dojo.addClass(div, this.baseClass + "Tick");
                }
            }
            if (this.isDisabledDate(date)) {
                dojo.addClass(div, this.baseClass + "ItemDisabled");
            }
            if (this.value && !dojo.date.compare(this.value, date, this.constraints.selector)) {
                div.selected = true;
                dojo.addClass(div, this.baseClass + "ItemSelected");
                if (dojo.hasClass(div, this.baseClass + "Marker")) {
                    dojo.addClass(div, this.baseClass + "MarkerSelected");
                } else {
                    dojo.addClass(div, this.baseClass + "TickSelected");
                }
                this._highlightOption(div, true);
            }
            return div;
        },
        _onOptionSelected: function(tgt) {
            var _416 = tgt.target.date || tgt.target.parentNode.date;
            if (!_416 || this.isDisabledDate(_416)) {
                return;
            }
            this._highlighted_option = null ;
            this.set("value", _416);
            this.onChange(_416);
        },
        onChange: function(time) {},
        _highlightOption: function(node, _417) {
            if (!node) {
                return;
            }
            if (_417) {
                if (this._highlighted_option) {
                    this._highlightOption(this._highlighted_option, false);
                }
                this._highlighted_option = node;
            } else {
                if (this._highlighted_option !== node) {
                    return;
                } else {
                    this._highlighted_option = null ;
                }
            }
            dojo.toggleClass(node, this.baseClass + "ItemHover", _417);
            if (dojo.hasClass(node, this.baseClass + "Marker")) {
                dojo.toggleClass(node, this.baseClass + "MarkerHover", _417);
            } else {
                dojo.toggleClass(node, this.baseClass + "TickHover", _417);
            }
        },
        onmouseover: function(e) {
            this._keyboardSelected = null ;
            var tgr = (e.target.parentNode === this.timeMenu) ? e.target : e.target.parentNode;
            if (!dojo.hasClass(tgr, this.baseClass + "Item")) {
                return;
            }
            this._highlightOption(tgr, true);
        },
        onmouseout: function(e) {
            this._keyboardSelected = null ;
            var tgr = (e.target.parentNode === this.timeMenu) ? e.target : e.target.parentNode;
            this._highlightOption(tgr, false);
        },
        _mouseWheeled: function(e) {
            this._keyboardSelected = null ;
            dojo.stopEvent(e);
            var _418 = (dojo.isIE ? e.wheelDelta : -e.detail);
            this[(_418 > 0 ? "_onArrowUp" : "_onArrowDown")]();
        },
        _onArrowUp: function(_419) {
            if (typeof _419 == "number" && _419 == -1) {
                return;
            }
            if (!this.timeMenu.childNodes.length) {
                return;
            }
            var _41a = this.timeMenu.childNodes[0].index;
            var divs = this._getFilteredNodes(_41a, 1, true, this.timeMenu.childNodes[0]);
            if (divs.length) {
                this.timeMenu.removeChild(this.timeMenu.childNodes[this.timeMenu.childNodes.length - 1]);
                this.timeMenu.insertBefore(divs[0], this.timeMenu.childNodes[0]);
            }
        },
        _onArrowDown: function(_41b) {
            if (typeof _41b == "number" && _41b == -1) {
                return;
            }
            if (!this.timeMenu.childNodes.length) {
                return;
            }
            var _41c = this.timeMenu.childNodes[this.timeMenu.childNodes.length - 1].index + 1;
            var divs = this._getFilteredNodes(_41c, 1, false, this.timeMenu.childNodes[this.timeMenu.childNodes.length - 1]);
            if (divs.length) {
                this.timeMenu.removeChild(this.timeMenu.childNodes[0]);
                this.timeMenu.appendChild(divs[0]);
            }
        },
        handleKey: function(e) {
            var dk = dojo.keys;
            if (e.charOrCode == dk.DOWN_ARROW || e.charOrCode == dk.UP_ARROW) {
                dojo.stopEvent(e);
                if (this._highlighted_option && !this._highlighted_option.parentNode) {
                    this._highlighted_option = null ;
                }
                var _41d = this.timeMenu
                  , tgt = this._highlighted_option || dojo.query("." + this.baseClass + "ItemSelected", _41d)[0];
                if (!tgt) {
                    tgt = _41d.childNodes[0];
                } else {
                    if (_41d.childNodes.length) {
                        if (e.charOrCode == dk.DOWN_ARROW && !tgt.nextSibling) {
                            this._onArrowDown();
                        } else {
                            if (e.charOrCode == dk.UP_ARROW && !tgt.previousSibling) {
                                this._onArrowUp();
                            }
                        }
                        if (e.charOrCode == dk.DOWN_ARROW) {
                            tgt = tgt.nextSibling;
                        } else {
                            tgt = tgt.previousSibling;
                        }
                    }
                }
                this._highlightOption(tgt, true);
                this._keyboardSelected = tgt;
                return false;
            } else {
                if (e.charOrCode == dk.ENTER || e.charOrCode === dk.TAB) {
                    if (!this._keyboardSelected && e.charOrCode === dk.TAB) {
                        return true;
                    }
                    if (this._highlighted_option) {
                        this._onOptionSelected({
                            target: this._highlighted_option
                        });
                    }
                    return e.charOrCode === dk.TAB;
                }
            }
        }
    });
}
if (!dojo._hasResource["dijit.form.TimeTextBox"]) {
    dojo._hasResource["dijit.form.TimeTextBox"] = true;
    dojo.provide("dijit.form.TimeTextBox");
    dojo.declare("dijit.form.TimeTextBox", dijit.form._DateTimeTextBox, {
        baseClass: "dijitTextBox dijitComboBox dijitTimeTextBox",
        popupClass: "dijit._TimePicker",
        _selector: "time",
        value: new Date(""),
        _onKey: function(evt) {
            this.inherited(arguments);
            switch (evt.keyCode) {
            case dojo.keys.ENTER:
            case dojo.keys.TAB:
            case dojo.keys.ESCAPE:
            case dojo.keys.DOWN_ARROW:
            case dojo.keys.UP_ARROW:
                break;
            default:
                setTimeout(dojo.hitch(this, function() {
                    var val = this.get("displayedValue");
                    this.filterString = (val && !this.parse(val, this.constraints)) ? val.toLowerCase() : "";
                    if (this._opened) {
                        this.closeDropDown();
                    }
                    this.openDropDown();
                }), 0);
            }
        }
    });
}
if (!dojo._hasResource["smartdot.form.TimeTextBox"]) {
    dojo._hasResource["smartdot.form.TimeTextBox"] = true;
    dojo.provide("smartdot.form.TimeTextBox");
    dojo.declare("smartdot.form.TimeTextBox", dijit.form.TimeTextBox, {
        _onFocus: function() {
            return;
        },
        serialize: function(date, _41e) {
            return dojo.date.locale.format(date, {
                selector: "time",
                timePattern: "HH:mm:ss"
            });
        },
        preamble: function(arg, node) {
            if (!!node) {
                arg.oriNode = node.cloneNode(true);
                dojo.removeAttr(arg.oriNode, "dojoType");
            }
            var _41f = /^(0?[0-9]|1[0-9]|2[0-4]):([0-6][0-9])(:[0-6][0-9])?$/;
            if (!!node) {
                if (_41f.test(node.value)) {
                    var _420 = node.value + "";
                    _420 = _420.split(":");
                    arg.value = new Date(1970,0,1,_420[0] || 0,_420[1] || 0,_420[2] || 0);
                }
            }
        },
        buildRendering: function() {
            this.inherited(arguments);
            if (!!this.oriNode) {
                dojo.destroy(this.valueNode);
                this.valueNode = this.oriNode;
                dojo.place(this.valueNode, this.focusNode, "after");
                dojo.style(this.valueNode, {
                    display: "none"
                });
            }
            dojo.addClass(this.domNode, "smartdotTextBox");
            dojo.addClass(this.domNode, "smartdotTimeTextBox");
            this.constraints.timePattern = "HH:mm";
            this.constraints.clickableIncrement = "T00:30:00";
            this.constraints.visibleIncrement = "T01:00:00";
            this.constraints.visibleRange = "T04:00:00";
        }
    });
}
if (!dojo._hasResource["smartdot.form.DateTimeTextBox"]) {
    dojo._hasResource["smartdot.form.DateTimeTextBox"] = true;
    dojo.provide("smartdot.form.DateTimeTextBox");
    dojo.declare("smartdot.form.DateTimeTextBox", [dijit._Widget, dijit._Templated, dijit._Container], {
        templateString: "<div class=\"dijit dijitReset dijitInlineTable dijitLeft\"></div>",
        baseClass: "DateTimeTextBox",
        onChange: function() {},
        _setValue: function() {
            var _421, _422;
            if (!!this.DateSelecter.value) {
                _421 = dojo.date.locale.format(this.DateSelecter.value, {
                    datePattern: "yyyy-MM-d",
                    selector: "date"
                });
            } else {
                _421 = "";
            }
            if (!!this.TimeSelecter.value) {
                _422 = dojo.date.locale.format(this.TimeSelecter.value, {
                    selector: "time",
                    timePattern: "HH:mm"
                });
            } else {
                _422 = "";
            }
            var _423 = (!!_421 && !!_422) ? (_421 + " " + _422) : "";
            this.value = !!_423 ? dojo.date.stamp.fromISOString(_423.replace(" ", "T")) : "";
            this.valueNode.value = _423;
            (!!_421 && !!_422) && this.onChange(this.value);
        },
        preamble: function(arg, node) {
            if (!!node) {
                arg.value = !!node.value ? dojo.date.stamp.fromISOString(node.value.replace(" ", "T")) : "";
                arg.oriNode = node.cloneNode(true);
                arg.required = node.required || false;
                dojo.removeAttr(arg.oriNode, "dojoType");
                if (!!dojo.attr(node, "onChange")) {
                    this.onChange = eval(dojo.attr(node, "onChange"));
                }
            }
        },
        buildRendering: function() {
            this.inherited(arguments);
            this.valueNode = this.oriNode;
            this.valueNode.style.display = "none";
            dojo.place(this.valueNode, this.domNode, "last");
            var _424 = this;
            var _425 = this.value;
            this.TimeSelecter = new smartdot.form.TimeTextBox({
                parent: _424,
                value: _425 || null ,
                required: _424.required,
                onChange: function() {
                    dojo.hitch(_424, _424._setValue());
                }
            });
            this.DateSelecter = new smartdot.form.DateTextBox({
                parent: _424,
                value: _425 || null ,
                required: _424.required,
                onChange: function() {
                    dojo.hitch(_424, _424._setValue());
                }
            });
            this.addChild(this.DateSelecter);
            this.addChild(this.TimeSelecter);
            dojo.place(document.createTextNode(" "), this.DateSelecter.domNode, "after");
        }
    });
}
if (!dojo._hasResource["dijit.form.SimpleTextarea"]) {
    dojo._hasResource["dijit.form.SimpleTextarea"] = true;
    dojo.provide("dijit.form.SimpleTextarea");
    dojo.declare("dijit.form.SimpleTextarea", dijit.form.TextBox, {
        baseClass: "dijitTextBox dijitTextArea",
        attributeMap: dojo.delegate(dijit.form._FormValueWidget.prototype.attributeMap, {
            rows: "textbox",
            cols: "textbox"
        }),
        rows: "3",
        cols: "20",
        templateString: "<textarea ${!nameAttrSetting} dojoAttachPoint='focusNode,containerNode,textbox' autocomplete='off'></textarea>",
        postMixInProperties: function() {
            if (!this.value && this.srcNodeRef) {
                this.value = this.srcNodeRef.value;
            }
            this.inherited(arguments);
        },
        buildRendering: function() {
            this.inherited(arguments);
            if (dojo.isIE && this.cols) {
                dojo.addClass(this.textbox, "dijitTextAreaCols");
            }
        },
        filter: function(_426) {
            if (_426) {
                _426 = _426.replace(/\r/g, "");
            }
            return this.inherited(arguments);
        },
        _previousValue: "",
        _onInput: function(e) {
            if (this.maxLength) {
                var _427 = parseInt(this.maxLength);
                var _428 = this.textbox.value.replace(/\r/g, "");
                var _429 = _428.length - _427;
                if (_429 > 0) {
                    if (e) {
                        dojo.stopEvent(e);
                    }
                    var _42a = this.textbox;
                    if (_42a.selectionStart) {
                        var pos = _42a.selectionStart;
                        var cr = 0;
                        if (dojo.isOpera) {
                            cr = (this.textbox.value.substring(0, pos).match(/\r/g) || []).length;
                        }
                        this.textbox.value = _428.substring(0, pos - _429 - cr) + _428.substring(pos - cr);
                        _42a.setSelectionRange(pos - _429, pos - _429);
                    } else {
                        if (dojo.doc.selection) {
                            _42a.focus();
                            var _42b = dojo.doc.selection.createRange();
                            _42b.moveStart("character", -_429);
                            _42b.text = "";
                            _42b.select();
                        }
                    }
                }
                this._previousValue = this.textbox.value;
            }
            this.inherited(arguments);
        }
    });
}
if (!dojo._hasResource["dijit.form.Textarea"]) {
    dojo._hasResource["dijit.form.Textarea"] = true;
    dojo.provide("dijit.form.Textarea");
    dojo.declare("dijit.form.Textarea", dijit.form.SimpleTextarea, {
        baseClass: "dijitTextBox dijitTextArea dijitExpandingTextArea",
        cols: "",
        _previousNewlines: 0,
        _strictMode: (dojo.doc.compatMode != "BackCompat"),
        _getHeight: function(_42c) {
            var newH = _42c.scrollHeight;
            if (dojo.isIE) {
                newH += _42c.offsetHeight - _42c.clientHeight - ((dojo.isIE < 8 && this._strictMode) ? dojo._getPadBorderExtents(_42c).h : 0);
            } else {
                if (dojo.isMoz) {
                    newH += _42c.offsetHeight - _42c.clientHeight;
                } else {
                    if (dojo.isWebKit) {
                        newH += dojo._getBorderExtents(_42c).h;
                    } else {
                        newH += dojo._getPadBorderExtents(_42c).h;
                    }
                }
            }
            return newH;
        },
        _estimateHeight: function(_42d) {
            _42d.style.maxHeight = "";
            _42d.style.height = "auto";
            _42d.rows = (_42d.value.match(/\n/g) || []).length + 1;
        },
        _needsHelpShrinking: dojo.isMoz || dojo.isWebKit,
        _onInput: function() {
            this.inherited(arguments);
            if (this._busyResizing) {
                return;
            }
            this._busyResizing = true;
            var _42e = this.textbox;
            if (_42e.scrollHeight && _42e.offsetHeight && _42e.clientHeight) {
                var newH = this._getHeight(_42e) + "px";
                if (_42e.style.height != newH) {
                    _42e.style.maxHeight = _42e.style.height = newH;
                }
                if (this._needsHelpShrinking) {
                    if (this._setTimeoutHandle) {
                        clearTimeout(this._setTimeoutHandle);
                    }
                    this._setTimeoutHandle = setTimeout(dojo.hitch(this, "_shrink"), 0);
                }
            } else {
                this._estimateHeight(_42e);
            }
            this._busyResizing = false;
        },
        _busyResizing: false,
        _shrink: function() {
            this._setTimeoutHandle = null ;
            if (this._needsHelpShrinking && !this._busyResizing) {
                this._busyResizing = true;
                var _42f = this.textbox;
                var _430 = false;
                if (_42f.value == "") {
                    _42f.value = " ";
                    _430 = true;
                }
                var _431 = _42f.scrollHeight;
                if (!_431) {
                    this._estimateHeight(_42f);
                } else {
                    var _432 = _42f.style.paddingBottom;
                    var _433 = dojo._getPadExtents(_42f);
                    _433 = _433.h - _433.t;
                    _42f.style.paddingBottom = _433 + 1 + "px";
                    var newH = this._getHeight(_42f) - 1 + "px";
                    if (_42f.style.maxHeight != newH) {
                        _42f.style.paddingBottom = _433 + _431 + "px";
                        _42f.scrollTop = 0;
                        _42f.style.maxHeight = this._getHeight(_42f) - _431 + "px";
                    }
                    _42f.style.paddingBottom = _432;
                }
                if (_430) {
                    _42f.value = "";
                }
                this._busyResizing = false;
            }
        },
        resize: function() {
            this._onInput();
        },
        _setValueAttr: function() {
            this.inherited(arguments);
            this.resize();
        },
        buildRendering: function() {
            this.inherited(arguments);
            dojo.style(this.textbox, {
                overflowY: "hidden",
                overflowX: "auto",
                boxSizing: "border-box",
                MsBoxSizing: "border-box",
                WebkitBoxSizing: "border-box",
                MozBoxSizing: "border-box"
            });
        },
        postCreate: function() {
            this.inherited(arguments);
            this.connect(this.textbox, "onscroll", "_onInput");
            this.connect(this.textbox, "onresize", "_onInput");
            this.connect(this.textbox, "onfocus", "_onInput");
            this._setTimeoutHandle = setTimeout(dojo.hitch(this, "resize"), 0);
        },
        uninitialize: function() {
            if (this._setTimeoutHandle) {
                clearTimeout(this._setTimeoutHandle);
            }
            this.inherited(arguments);
        }
    });
}
if (!dojo._hasResource["smartdot.form.SelectDepTextarea"]) {
    dojo._hasResource["smartdot.form.SelectDepTextarea"] = true;
    dojo.provide("smartdot.form.SelectDepTextarea");
    dojo.declare("smartdot.form.SelectDepTextarea", dijit.form.Textarea, {
        templateString: "<textarea ${nameAttrSetting} dojoAttachPoint='focusNode,containerNode,textbox' readOnly='true' style='resize:none;line-height:16px;' autocomplete='off'></textarea>",
        popupClass: "smartdot.IframeDialog",
        _onClick: function() {
            if (document.forms[0].elements["Address"]) {
                document.forms[0].elements["Address"].value = this.name;
            }
            this.focus();
            this._open();
        },
        code: "",
        namePattern: "can",
        callback: function() {},
        preamble: function(arg, node) {
            if (!!node) {
                arg.oriNode = node.cloneNode(true);
                dojo.removeAttr(arg.oriNode, "dojoType");
                if (!!dojo.attr(node, "callback")) {
                    this.callback = eval(dojo.attr(node, "callback"));
                }
            }
        },
        postCreate: function() {
            this.inherited(arguments);
            this.curWidth = this.containerNode.style.width || "";
            this.curHeight = this.containerNode.style.height || "";
            this.wrapNode = dojo.create("div", {
                "class": "dijit dijitReset dijitTextareaWrap",
                style: {
                    width: this.curWidth,
                    height: this.curHeight,
                    position: "relative"
                }
            }, this.containerNode, "before");
            dojo.place(this.containerNode, this.wrapNode);
            this.valueNode = this.oriNode;
            dojo.place(this.valueNode, this.containerNode, "after");
            dojo.style(this.valueNode, {
                display: "none"
            });
            this.wrapNode.valueNode = this.valueNode;
            this.wrapNode.domNode = this.wrapNode;
            dojo.removeAttr(this.focusNode, "name");
            this.clickNode = dojo.create("button", {
                innerHTML: "Dep",
                type: "button",
                "class": "SelectDepTextarea-button",
                onmousedown: function() {
                    dojo.addClass(this, "SelectDepTextarea-button-active");
                },
                onmouseup: function() {
                    dojo.removeClass(this, "SelectDepTextarea-button-active");
                }
            }, this.wrapNode, "last");
            dojo.connect(this.clickNode, "onclick", this, this._onClick);
            this.focusNode.id = this.focusNode.id + "_disp";
        },
        parseName: function(str) {
            str = str.replace(/;|\^/g, ",");
            var _434 = str.split(",");
            var _435 = "";
            for (var i = 0; i < _434.length; i++) {
                _435 += (_435 == "" ? "" : ",") + _434[i].split("/")[0].replace(/\d+$/g, "").replace(/(CN|OU|O|C)=/g, "");
            }
            return _435;
        },
        _setName: function(_436) {
            this._setValueAttr(_436);
            if (this.namePattern == "can") {
                this.focusNode.value = _436;
            } else {
                if (this.namePattern == "com") {
                    this.focusNode.value = this.parseName(_436);
                } else {
                    if (this.namePattern == "noroot") {
                        this.focusNode.value = _436.lastIndexOf("/") === -1 ? _436 : _436.substr(0, _436.lastIndexOf("/"));
                    } else {
                        this.focusNode.value = _436;
                    }
                }
            }
            this.focusNode.title = _436;
        },
        setName: function(_437) {
            this.valueNode.value = _437;
            this._setName(_437);
        },
        _open: function() {
            if (this.disabled || !this.popupClass) {
                return;
            }
            var _438 = this;
            if (!this._dialog) {
                var _439 = dojo.getObject(this.popupClass, false);
                window.$$addressDialog = this._dialog = new _439({
                    title: "选择部门",
                    src: fnGetUrlRoot() + "indishare/addresstree.nsf/wSelDep?OpenForm&absname=" + this.name + "&code=" + this.code,
                    onCancel: function() {
                        _438._dialog.hide();
                        _438._dialog.destroy();
                        delete _438._dialog;
                    },
                    ok: function() {
                        _438._setName(_438.valueNode.value);
                        _438.callback();
                        this.hide();
                        _438._dialog.destroy();
                        delete _438._dialog;
                    }
                });
            }
            this._dialog.show();
        }
    });
}
if (!dojo._hasResource["dojo.data.util.sorter"]) {
    dojo._hasResource["dojo.data.util.sorter"] = true;
    dojo.provide("dojo.data.util.sorter");
    dojo.getObject("data.util.sorter", true, dojo);
    dojo.data.util.sorter.basicComparator = function(a, b) {
        var r = -1;
        if (a === null ) {
            a = undefined;
        }
        if (b === null ) {
            b = undefined;
        }
        if (a == b) {
            r = 0;
        } else {
            if (a > b || a == null ) {
                r = 1;
            }
        }
        return r;
    }
    ;
    dojo.data.util.sorter.createSortFunction = function(_43a, _43b) {
        var _43c = [];
        function _43d(attr, dir, comp, s) {
            return function(_43e, _43f) {
                var a = s.getValue(_43e, attr);
                var b = s.getValue(_43f, attr);
                return dir * comp(a, b);
            }
            ;
        }
        ;var _440;
        var map = _43b.comparatorMap;
        var bc = dojo.data.util.sorter.basicComparator;
        for (var i = 0; i < _43a.length; i++) {
            _440 = _43a[i];
            var attr = _440.attribute;
            if (attr) {
                var dir = (_440.descending) ? -1 : 1;
                var comp = bc;
                if (map) {
                    if (typeof attr !== "string" && ("toString" in attr)) {
                        attr = attr.toString();
                    }
                    comp = map[attr] || bc;
                }
                _43c.push(_43d(attr, dir, comp, _43b));
            }
        }
        return function(rowA, rowB) {
            var i = 0;
            while (i < _43c.length) {
                var ret = _43c[i++](rowA, rowB);
                if (ret !== 0) {
                    return ret;
                }
            }
            return 0;
        }
        ;
    }
    ;
}
if (!dojo._hasResource["dojo.data.util.simpleFetch"]) {
    dojo._hasResource["dojo.data.util.simpleFetch"] = true;
    dojo.provide("dojo.data.util.simpleFetch");
    dojo.getObject("data.util.simpleFetch", true, dojo);
    dojo.data.util.simpleFetch.fetch = function(_441) {
        _441 = _441 || {};
        if (!_441.store) {
            _441.store = this;
        }
        var self = this;
        var _442 = function(_443, _444) {
            if (_444.onError) {
                var _445 = _444.scope || dojo.global;
                _444.onError.call(_445, _443, _444);
            }
        }
        ;
        var _446 = function(_447, _448) {
            var _449 = _448.abort || null ;
            var _44a = false;
            var _44b = _448.start ? _448.start : 0;
            var _44c = (_448.count && (_448.count !== Infinity)) ? (_44b + _448.count) : _447.length;
            _448.abort = function() {
                _44a = true;
                if (_449) {
                    _449.call(_448);
                }
            }
            ;
            var _44d = _448.scope || dojo.global;
            if (!_448.store) {
                _448.store = self;
            }
            if (_448.onBegin) {
                _448.onBegin.call(_44d, _447.length, _448);
            }
            if (_448.sort) {
                _447.sort(dojo.data.util.sorter.createSortFunction(_448.sort, self));
            }
            if (_448.onItem) {
                for (var i = _44b; (i < _447.length) && (i < _44c); ++i) {
                    var item = _447[i];
                    if (!_44a) {
                        _448.onItem.call(_44d, item, _448);
                    }
                }
            }
            if (_448.onComplete && !_44a) {
                var _44e = null ;
                if (!_448.onItem) {
                    _44e = _447.slice(_44b, _44c);
                }
                _448.onComplete.call(_44d, _44e, _448);
            }
        }
        ;
        this._fetchItems(_441, _446, _442);
        return _441;
    }
    ;
}
if (!dojo._hasResource["dojo.data.util.filter"]) {
    dojo._hasResource["dojo.data.util.filter"] = true;
    dojo.provide("dojo.data.util.filter");
    dojo.getObject("data.util.filter", true, dojo);
    dojo.data.util.filter.patternToRegExp = function(_44f, _450) {
        var rxp = "^";
        var c = null ;
        for (var i = 0; i < _44f.length; i++) {
            c = _44f.charAt(i);
            switch (c) {
            case "\\":
                rxp += c;
                i++;
                rxp += _44f.charAt(i);
                break;
            case "*":
                rxp += ".*";
                break;
            case "?":
                rxp += ".";
                break;
            case "$":
            case "^":
            case "/":
            case "+":
            case ".":
            case "|":
            case "(":
            case ")":
            case "{":
            case "}":
            case "[":
            case "]":
                rxp += "\\";
            default:
                rxp += c;
            }
        }
        rxp += "$";
        if (_450) {
            return new RegExp(rxp,"mi");
        } else {
            return new RegExp(rxp,"m");
        }
    }
    ;
}
if (!dojo._hasResource["dijit.form.ComboBox"]) {
    dojo._hasResource["dijit.form.ComboBox"] = true;
    dojo.provide("dijit.form.ComboBox");
    dojo.declare("dijit.form.ComboBoxMixin", dijit._HasDropDown, {
        item: null ,
        pageSize: Infinity,
        store: null ,
        fetchProperties: {},
        query: {},
        autoComplete: true,
        highlightMatch: "first",
        searchDelay: 100,
        searchAttr: "name",
        labelAttr: "",
        labelType: "text",
        queryExpr: "${0}*",
        ignoreCase: true,
        hasDownArrow: true,
        templateString: dojo.cache("dijit.form", "templates/DropDownBox.html", "<div class=\"dijit dijitReset dijitInlineTable dijitLeft\"\r\n\tid=\"widget_${id}\"\r\n\trole=\"combobox\"\r\n\t><div class='dijitReset dijitRight dijitButtonNode dijitArrowButton dijitDownArrowButton dijitArrowButtonContainer'\r\n\t\tdojoAttachPoint=\"_buttonNode, _popupStateNode\" role=\"presentation\"\r\n\t\t><input class=\"dijitReset dijitInputField dijitArrowButtonInner\" value=\"&#9660; \" type=\"text\" tabIndex=\"-1\" readonly=\"readonly\" role=\"presentation\"\r\n\t\t\t${_buttonInputDisabled}\r\n\t/></div\r\n\t><div class='dijitReset dijitValidationContainer'\r\n\t\t><input class=\"dijitReset dijitInputField dijitValidationIcon dijitValidationInner\" value=\"&#935; \" type=\"text\" tabIndex=\"-1\" readonly=\"readonly\" role=\"presentation\"\r\n\t/></div\r\n\t><div class=\"dijitReset dijitInputField dijitInputContainer\"\r\n\t\t><input class='dijitReset dijitInputInner' ${!nameAttrSetting} type=\"text\" autocomplete=\"off\"\r\n\t\t\tdojoAttachPoint=\"textbox,focusNode\" role=\"textbox\" aria-haspopup=\"true\"\r\n\t/></div\r\n></div>\r\n"),
        baseClass: "dijitTextBox dijitComboBox",
        dropDownClass: "dijit.form._ComboBoxMenu",
        cssStateNodes: {
            "_buttonNode": "dijitDownArrowButton"
        },
        maxHeight: -1,
        _stopClickEvents: false,
        _getCaretPos: function(_451) {
            var pos = 0;
            if (typeof (_451.selectionStart) == "number") {
                pos = _451.selectionStart;
            } else {
                if (dojo.isIE) {
                    var tr = dojo.doc.selection.createRange().duplicate();
                    var ntr = _451.createTextRange();
                    tr.move("character", 0);
                    ntr.move("character", 0);
                    try {
                        ntr.setEndPoint("EndToEnd", tr);
                        pos = String(ntr.text).replace(/\r/g, "").length;
                    } catch (e) {}
                }
            }
            return pos;
        },
        _setCaretPos: function(_452, _453) {
            _453 = parseInt(_453);
            dijit.selectInputText(_452, _453, _453);
        },
        _setDisabledAttr: function(_454) {
            this.inherited(arguments);
            dijit.setWaiState(this.domNode, "disabled", _454);
        },
        _abortQuery: function() {
            if (this.searchTimer) {
                clearTimeout(this.searchTimer);
                this.searchTimer = null ;
            }
            if (this._fetchHandle) {
                if (this._fetchHandle.abort) {
                    this._fetchHandle.abort();
                }
                this._fetchHandle = null ;
            }
        },
        _onInput: function(evt) {
            if (!this.searchTimer && (evt.type == "paste" || evt.type == "input") && this._lastInput != this.textbox.value) {
                this.searchTimer = setTimeout(dojo.hitch(this, function() {
                    this._onKey({
                        charOrCode: 229
                    });
                }), 100);
            }
            this.inherited(arguments);
        },
        _onKey: function(evt) {
            var key = evt.charOrCode;
            if (evt.altKey || ((evt.ctrlKey || evt.metaKey) && (key != "x" && key != "v")) || key == dojo.keys.SHIFT) {
                return;
            }
            var _455 = false;
            var pw = this.dropDown;
            var dk = dojo.keys;
            var _456 = null ;
            this._prev_key_backspace = false;
            this._abortQuery();
            this.inherited(arguments);
            if (this._opened) {
                _456 = pw.getHighlightedOption();
            }
            switch (key) {
            case dk.PAGE_DOWN:
            case dk.DOWN_ARROW:
            case dk.PAGE_UP:
            case dk.UP_ARROW:
                if (this._opened) {
                    this._announceOption(_456);
                }
                dojo.stopEvent(evt);
                break;
            case dk.ENTER:
                if (_456) {
                    if (_456 == pw.nextButton) {
                        this._nextSearch(1);
                        dojo.stopEvent(evt);
                        break;
                    } else {
                        if (_456 == pw.previousButton) {
                            this._nextSearch(-1);
                            dojo.stopEvent(evt);
                            break;
                        }
                    }
                } else {
                    this._setBlurValue();
                    this._setCaretPos(this.focusNode, this.focusNode.value.length);
                }
                if (this._opened || this._fetchHandle) {
                    evt.preventDefault();
                }
            case dk.TAB:
                var _457 = this.get("displayedValue");
                if (pw && (_457 == pw._messages["previousMessage"] || _457 == pw._messages["nextMessage"])) {
                    break;
                }
                if (_456) {
                    this._selectOption();
                }
                if (this._opened) {
                    this._lastQuery = null ;
                    this.closeDropDown();
                }
                break;
            case " ":
                if (_456) {
                    dojo.stopEvent(evt);
                    this._selectOption();
                    this.closeDropDown();
                } else {
                    _455 = true;
                }
                break;
            case dk.DELETE:
            case dk.BACKSPACE:
                this._prev_key_backspace = true;
                _455 = true;
                break;
            default:
                _455 = typeof key == "string" || key == 229;
            }
            if (_455) {
                this.item = undefined;
                this.searchTimer = setTimeout(dojo.hitch(this, "_startSearchFromInput"), 1);
            }
        },
        _autoCompleteText: function(text) {
            var fn = this.focusNode;
            dijit.selectInputText(fn, fn.value.length);
            var _458 = this.ignoreCase ? "toLowerCase" : "substr";
            if (text[_458](0).indexOf(this.focusNode.value[_458](0)) == 0) {
                var cpos = this._getCaretPos(fn);
                if ((cpos + 1) > fn.value.length) {
                    fn.value = text;
                    dijit.selectInputText(fn, cpos);
                }
            } else {
                fn.value = text;
                dijit.selectInputText(fn);
            }
        },
        _openResultList: function(_459, _45a) {
            this._fetchHandle = null ;
            if (this.disabled || this.readOnly || (_45a.query[this.searchAttr] != this._lastQuery)) {
                return;
            }
            var _45b = this.dropDown._highlighted_option && dojo.hasClass(this.dropDown._highlighted_option, "dijitMenuItemSelected");
            this.dropDown.clearResultList();
            if (!_459.length && !this._maxOptions) {
                this.closeDropDown();
                return;
            }
            _45a._maxOptions = this._maxOptions;
            var _45c = this.dropDown.createOptions(_459, _45a, dojo.hitch(this, "_getMenuLabelFromItem"));
            this._showResultList();
            if (_45a.direction) {
                if (1 == _45a.direction) {
                    this.dropDown.highlightFirstOption();
                } else {
                    if (-1 == _45a.direction) {
                        this.dropDown.highlightLastOption();
                    }
                }
                if (_45b) {
                    this._announceOption(this.dropDown.getHighlightedOption());
                }
            } else {
                if (this.autoComplete && !this._prev_key_backspace && !/^[*]+$/.test(_45a.query[this.searchAttr])) {
                    this._announceOption(_45c[1]);
                }
            }
        },
        _showResultList: function() {
            this.closeDropDown(true);
            this.displayMessage("");
            this.openDropDown();
            dijit.setWaiState(this.domNode, "expanded", "true");
        },
        loadDropDown: function(_45d) {
            this._startSearchAll();
        },
        isLoaded: function() {
            return false;
        },
        closeDropDown: function() {
            this._abortQuery();
            if (this._opened) {
                this.inherited(arguments);
                dijit.setWaiState(this.domNode, "expanded", "false");
                dijit.removeWaiState(this.focusNode, "activedescendant");
            }
        },
        _setBlurValue: function() {
            var _45e = this.get("displayedValue");
            var pw = this.dropDown;
            if (pw && (_45e == pw._messages["previousMessage"] || _45e == pw._messages["nextMessage"])) {
                this._setValueAttr(this._lastValueReported, true);
            } else {
                if (typeof this.item == "undefined") {
                    this.item = null ;
                    this.set("displayedValue", _45e);
                } else {
                    if (this.value != this._lastValueReported) {
                        dijit.form._FormValueWidget.prototype._setValueAttr.call(this, this.value, true);
                    }
                    this._refreshState();
                }
            }
        },
        _onBlur: function() {
            this.closeDropDown();
            this.inherited(arguments);
        },
        _setItemAttr: function(item, _45f, _460) {
            if (!_460) {
                _460 = this.store.getValue(item, this.searchAttr);
            }
            var _461 = this._getValueField() != this.searchAttr ? this.store.getIdentity(item) : _460;
            this._set("item", item);
            dijit.form.ComboBox.superclass._setValueAttr.call(this, _461, _45f, _460);
        },
        _announceOption: function(node) {
            if (!node) {
                return;
            }
            var _462;
            if (node == this.dropDown.nextButton || node == this.dropDown.previousButton) {
                _462 = node.innerHTML;
                this.item = undefined;
                this.value = "";
            } else {
                _462 = this.store.getValue(node.item, this.searchAttr).toString();
                this.set("item", node.item, false, _462);
            }
            this.focusNode.value = this.focusNode.value.substring(0, this._lastInput.length);
            dijit.setWaiState(this.focusNode, "activedescendant", dojo.attr(node, "id"));
            this._autoCompleteText(_462);
        },
        _selectOption: function(evt) {
            if (evt) {
                this._announceOption(evt.target);
            }
            this.closeDropDown();
            this._setCaretPos(this.focusNode, this.focusNode.value.length);
            dijit.form._FormValueWidget.prototype._setValueAttr.call(this, this.value, true);
        },
        _startSearchAll: function() {
            this._startSearch("");
        },
        _startSearchFromInput: function() {
            this._startSearch(this.focusNode.value.replace(/([\\\*\?])/g, "\\$1"));
        },
        _getQueryString: function(text) {
            return dojo.string.substitute(this.queryExpr, [text]);
        },
        _startSearch: function(key) {
            if (!this.dropDown) {
                var _463 = this.id + "_popup"
                  , _464 = dojo.getObject(this.dropDownClass, false);
                this.dropDown = new _464({
                    onChange: dojo.hitch(this, this._selectOption),
                    id: _463,
                    dir: this.dir
                });
                dijit.removeWaiState(this.focusNode, "activedescendant");
                dijit.setWaiState(this.textbox, "owns", _463);
            }
            var _465 = dojo.clone(this.query);
            this._lastInput = key;
            this._lastQuery = _465[this.searchAttr] = this._getQueryString(key);
            this.searchTimer = setTimeout(dojo.hitch(this, function(_466, _467) {
                this.searchTimer = null ;
                var _468 = {
                    queryOptions: {
                        ignoreCase: this.ignoreCase,
                        deep: true
                    },
                    query: _466,
                    onBegin: dojo.hitch(this, "_setMaxOptions"),
                    onComplete: dojo.hitch(this, "_openResultList"),
                    onError: function(_469) {
                        _467._fetchHandle = null ;
                        console.error("dijit.form.ComboBox: " + _469);
                        _467.closeDropDown();
                    },
                    start: 0,
                    count: this.pageSize
                };
                dojo.mixin(_468, _467.fetchProperties);
                this._fetchHandle = _467.store.fetch(_468);
                var _46a = function(_46b, _46c) {
                    _46b.start += _46b.count * _46c;
                    _46b.direction = _46c;
                    this._fetchHandle = this.store.fetch(_46b);
                    this.focus();
                }
                ;
                this._nextSearch = this.dropDown.onPage = dojo.hitch(this, _46a, this._fetchHandle);
            }, _465, this), this.searchDelay);
        },
        _setMaxOptions: function(size, _46d) {
            this._maxOptions = size;
        },
        _getValueField: function() {
            return this.searchAttr;
        },
        constructor: function() {
            this.query = {};
            this.fetchProperties = {};
        },
        postMixInProperties: function() {
            if (!this.store) {
                var _46e = this.srcNodeRef;
                this.store = new dijit.form._ComboBoxDataStore(_46e);
                if (!("value" in this.params)) {
                    var item = (this.item = this.store.fetchSelectedItem());
                    if (item) {
                        var _46f = this._getValueField();
                        this.value = this.store.getValue(item, _46f);
                    }
                }
            }
            this.inherited(arguments);
        },
        postCreate: function() {
            var _470 = dojo.query("label[for=\"" + this.id + "\"]");
            if (_470.length) {
                _470[0].id = (this.id + "_label");
                dijit.setWaiState(this.domNode, "labelledby", _470[0].id);
            }
            this.inherited(arguments);
        },
        _setHasDownArrowAttr: function(val) {
            this.hasDownArrow = val;
            this._buttonNode.style.display = val ? "" : "none";
        },
        _getMenuLabelFromItem: function(item) {
            var _471 = this.labelFunc(item, this.store)
              , _472 = this.labelType;
            if (this.highlightMatch != "none" && this.labelType == "text" && this._lastInput) {
                _471 = this.doHighlight(_471, this._escapeHtml(this._lastInput));
                _472 = "html";
            }
            return {
                html: _472 == "html",
                label: _471
            };
        },
        doHighlight: function(_473, find) {
            var _474 = (this.ignoreCase ? "i" : "") + (this.highlightMatch == "all" ? "g" : "")
              , i = this.queryExpr.indexOf("${0}");
            find = dojo.regexp.escapeString(find);
            return this._escapeHtml(_473).replace(new RegExp((i == 0 ? "^" : "") + "(" + find + ")" + (i == (this.queryExpr.length - 4) ? "$" : ""),_474), "<span class=\"dijitComboBoxHighlightMatch\">$1</span>");
        },
        _escapeHtml: function(str) {
            str = String(str).replace(/&/gm, "&amp;").replace(/</gm, "&lt;").replace(/>/gm, "&gt;").replace(/"/gm, "&quot;");
            return str;
        },
        reset: function() {
            this.item = null ;
            this.inherited(arguments);
        },
        labelFunc: function(item, _475) {
            return _475.getValue(item, this.labelAttr || this.searchAttr).toString();
        }
    });
    dojo.declare("dijit.form._ComboBoxMenu", [dijit._Widget, dijit._Templated, dijit._CssStateMixin], {
        templateString: "<ul class='dijitReset dijitMenu' dojoAttachEvent='onmousedown:_onMouseDown,onmouseup:_onMouseUp,onmouseover:_onMouseOver,onmouseout:_onMouseOut' style='overflow: \"auto\"; overflow-x: \"hidden\";'>" + "<li class='dijitMenuItem dijitMenuPreviousButton' dojoAttachPoint='previousButton' role='option'></li>" + "<li class='dijitMenuItem dijitMenuNextButton' dojoAttachPoint='nextButton' role='option'></li>" + "</ul>",
        _messages: null ,
        baseClass: "dijitComboBoxMenu",
        postMixInProperties: function() {
            this.inherited(arguments);
            this._messages = dojo.i18n.getLocalization("dijit.form", "ComboBox", this.lang);
        },
        buildRendering: function() {
            this.inherited(arguments);
            this.previousButton.innerHTML = this._messages["previousMessage"];
            this.nextButton.innerHTML = this._messages["nextMessage"];
        },
        _setValueAttr: function(_476) {
            this.value = _476;
            this.onChange(_476);
        },
        onChange: function(_477) {},
        onPage: function(_478) {},
        onClose: function() {
            this._blurOptionNode();
        },
        _createOption: function(item, _479) {
            var _47a = dojo.create("li", {
                "class": "dijitReset dijitMenuItem" + (this.isLeftToRight() ? "" : " dijitMenuItemRtl"),
                role: "option"
            });
            var _47b = _479(item);
            if (_47b.html) {
                _47a.innerHTML = _47b.label;
            } else {
                _47a.appendChild(dojo.doc.createTextNode(_47b.label));
            }
            if (_47a.innerHTML == "") {
                _47a.innerHTML = "&nbsp;";
            }
            _47a.item = item;
            return _47a;
        },
        createOptions: function(_47c, _47d, _47e) {
            this.previousButton.style.display = (_47d.start == 0) ? "none" : "";
            dojo.attr(this.previousButton, "id", this.id + "_prev");
            dojo.forEach(_47c, function(item, i) {
                var _47f = this._createOption(item, _47e);
                dojo.attr(_47f, "id", this.id + i);
                this.domNode.insertBefore(_47f, this.nextButton);
            }, this);
            var _480 = false;
            if (_47d._maxOptions && _47d._maxOptions != -1) {
                if ((_47d.start + _47d.count) < _47d._maxOptions) {
                    _480 = true;
                } else {
                    if ((_47d.start + _47d.count) > _47d._maxOptions && _47d.count == _47c.length) {
                        _480 = true;
                    }
                }
            } else {
                if (_47d.count == _47c.length) {
                    _480 = true;
                }
            }
            this.nextButton.style.display = _480 ? "" : "none";
            dojo.attr(this.nextButton, "id", this.id + "_next");
            return this.domNode.childNodes;
        },
        clearResultList: function() {
            while (this.domNode.childNodes.length > 2) {
                this.domNode.removeChild(this.domNode.childNodes[this.domNode.childNodes.length - 2]);
            }
            this._blurOptionNode();
        },
        _onMouseDown: function(evt) {
            dojo.stopEvent(evt);
        },
        _onMouseUp: function(evt) {
            if (evt.target === this.domNode || !this._highlighted_option) {
                return;
            } else {
                if (evt.target == this.previousButton) {
                    this._blurOptionNode();
                    this.onPage(-1);
                } else {
                    if (evt.target == this.nextButton) {
                        this._blurOptionNode();
                        this.onPage(1);
                    } else {
                        var tgt = evt.target;
                        while (!tgt.item) {
                            tgt = tgt.parentNode;
                        }
                        this._setValueAttr({
                            target: tgt
                        }, true);
                    }
                }
            }
        },
        _onMouseOver: function(evt) {
            if (evt.target === this.domNode) {
                return;
            }
            var tgt = evt.target;
            if (!(tgt == this.previousButton || tgt == this.nextButton)) {
                while (!tgt.item) {
                    tgt = tgt.parentNode;
                }
            }
            this._focusOptionNode(tgt);
        },
        _onMouseOut: function(evt) {
            if (evt.target === this.domNode) {
                return;
            }
            this._blurOptionNode();
        },
        _focusOptionNode: function(node) {
            if (this._highlighted_option != node) {
                this._blurOptionNode();
                this._highlighted_option = node;
                dojo.addClass(this._highlighted_option, "dijitMenuItemSelected");
            }
        },
        _blurOptionNode: function() {
            if (this._highlighted_option) {
                dojo.removeClass(this._highlighted_option, "dijitMenuItemSelected");
                this._highlighted_option = null ;
            }
        },
        _highlightNextOption: function() {
            if (!this.getHighlightedOption()) {
                var fc = this.domNode.firstChild;
                this._focusOptionNode(fc.style.display == "none" ? fc.nextSibling : fc);
            } else {
                var ns = this._highlighted_option.nextSibling;
                if (ns && ns.style.display != "none") {
                    this._focusOptionNode(ns);
                } else {
                    this.highlightFirstOption();
                }
            }
            dojo.window.scrollIntoView(this._highlighted_option);
        },
        highlightFirstOption: function() {
            var _481 = this.domNode.firstChild;
            var _482 = _481.nextSibling;
            this._focusOptionNode(_482.style.display == "none" ? _481 : _482);
            dojo.window.scrollIntoView(this._highlighted_option);
        },
        highlightLastOption: function() {
            this._focusOptionNode(this.domNode.lastChild.previousSibling);
            dojo.window.scrollIntoView(this._highlighted_option);
        },
        _highlightPrevOption: function() {
            if (!this.getHighlightedOption()) {
                var lc = this.domNode.lastChild;
                this._focusOptionNode(lc.style.display == "none" ? lc.previousSibling : lc);
            } else {
                var ps = this._highlighted_option.previousSibling;
                if (ps && ps.style.display != "none") {
                    this._focusOptionNode(ps);
                } else {
                    this.highlightLastOption();
                }
            }
            dojo.window.scrollIntoView(this._highlighted_option);
        },
        _page: function(up) {
            var _483 = 0;
            var _484 = this.domNode.scrollTop;
            var _485 = dojo.style(this.domNode, "height");
            if (!this.getHighlightedOption()) {
                this._highlightNextOption();
            }
            while (_483 < _485) {
                if (up) {
                    if (!this.getHighlightedOption().previousSibling || this._highlighted_option.previousSibling.style.display == "none") {
                        break;
                    }
                    this._highlightPrevOption();
                } else {
                    if (!this.getHighlightedOption().nextSibling || this._highlighted_option.nextSibling.style.display == "none") {
                        break;
                    }
                    this._highlightNextOption();
                }
                var _486 = this.domNode.scrollTop;
                _483 += (_486 - _484) * (up ? -1 : 1);
                _484 = _486;
            }
        },
        pageUp: function() {
            this._page(true);
        },
        pageDown: function() {
            this._page(false);
        },
        getHighlightedOption: function() {
            var ho = this._highlighted_option;
            return (ho && ho.parentNode) ? ho : null ;
        },
        handleKey: function(evt) {
            switch (evt.charOrCode) {
            case dojo.keys.DOWN_ARROW:
                this._highlightNextOption();
                return false;
            case dojo.keys.PAGE_DOWN:
                this.pageDown();
                return false;
            case dojo.keys.UP_ARROW:
                this._highlightPrevOption();
                return false;
            case dojo.keys.PAGE_UP:
                this.pageUp();
                return false;
            default:
                return true;
            }
        }
    });
    dojo.declare("dijit.form.ComboBox", [dijit.form.ValidationTextBox, dijit.form.ComboBoxMixin], {
        _setValueAttr: function(_487, _488, _489) {
            this._set("item", null );
            if (!_487) {
                _487 = "";
            }
            dijit.form.ValidationTextBox.prototype._setValueAttr.call(this, _487, _488, _489);
        }
    });
    dojo.declare("dijit.form._ComboBoxDataStore", null , {
        constructor: function(root) {
            this.root = root;
            if (root.tagName != "SELECT" && root.firstChild) {
                root = dojo.query("select", root);
                if (root.length > 0) {
                    root = root[0];
                } else {
                    this.root.innerHTML = "<SELECT>" + this.root.innerHTML + "</SELECT>";
                    root = this.root.firstChild;
                }
                this.root = root;
            }
            dojo.query("> option", root).forEach(function(node) {
                node.innerHTML = dojo.trim(node.innerHTML);
            });
        },
        getValue: function(item, _48a, _48b) {
            return (_48a == "value") ? item.value : (item.innerText || item.textContent || "");
        },
        isItemLoaded: function(_48c) {
            return true;
        },
        getFeatures: function() {
            return {
                "dojo.data.api.Read": true,
                "dojo.data.api.Identity": true
            };
        },
        _fetchItems: function(args, _48d, _48e) {
            if (!args.query) {
                args.query = {};
            }
            if (!args.query.name) {
                args.query.name = "";
            }
            if (!args.queryOptions) {
                args.queryOptions = {};
            }
            var _48f = dojo.data.util.filter.patternToRegExp(args.query.name, args.queryOptions.ignoreCase)
              , _490 = dojo.query("> option", this.root).filter(function(_491) {
                return (_491.innerText || _491.textContent || "").match(_48f);
            });
            if (args.sort) {
                _490.sort(dojo.data.util.sorter.createSortFunction(args.sort, this));
            }
            _48d(_490, args);
        },
        close: function(_492) {
            return;
        },
        getLabel: function(item) {
            return item.innerHTML;
        },
        getIdentity: function(item) {
            return dojo.attr(item, "value");
        },
        fetchItemByIdentity: function(args) {
            var item = dojo.query("> option[value='" + args.identity + "']", this.root)[0];
            args.onItem(item);
        },
        fetchSelectedItem: function() {
            var root = this.root
              , si = root.selectedIndex;
            return typeof si == "number" ? dojo.query("> option:nth-child(" + (si != -1 ? si + 1 : 1) + ")", root)[0] : null ;
        }
    });
    dojo.extend(dijit.form._ComboBoxDataStore, dojo.data.util.simpleFetch);
}
if (!dojo._hasResource["smartdot.form.SelectDepTextBox"]) {
    dojo._hasResource["smartdot.form.SelectDepTextBox"] = true;
    dojo.provide("smartdot.form.SelectDepTextBox");
    dojo.declare("smartdot.form.SelectDepTextBox", dijit.form.ComboBox, {
        popupClass: "smartdot.IframeDialog",
        _onClick: function() {
            if (document.forms[0].elements["Address"]) {
                document.forms[0].elements["Address"].value = this.name;
            }
            this._open();
        },
        code: "",
        namePattern: "can",
        callback: function() {},
        preamble: function(arg, node) {
            if (!!node) {
                arg.oriNode = node.cloneNode(true);
                dojo.removeAttr(arg.oriNode, "dojoType");
                if (!!dojo.attr(node, "callback")) {
                    this.callback = eval(dojo.attr(node, "callback"));
                }
            }
        },
        buildRendering: function() {
            this.inherited(arguments);
            this.valueNode = this.oriNode;
            dojo.place(this.valueNode, this.focusNode, "after");
            dojo.style(this.valueNode, {
                display: "none"
            });
            dojo.addClass(this.domNode, "smartdotTextBox");
            dojo.addClass(this.domNode, "smartdotDepTextBox");
            this.focusNode.readOnly = true;
            dojo.removeAttr(this.focusNode, "name");
            dojo.connect(this._buttonNode, "onclick", this, this._onClick);
        },
        postCreate: function() {
            this.inherited(arguments);
            this._setName(this.valueNode.value);
            this.focusNode.id = this.focusNode.id + "_disp";
        },
        parseName: function(str) {
            str = str.replace(/;|\^/g, ",");
            var _493 = str.split(",");
            var _494 = "";
            for (var i = 0; i < _493.length; i++) {
                _494 += (_494 == "" ? "" : ",") + _493[i].split("/")[0].replace(/\d+$/g, "").replace(/(CN|OU|O|C)=/g, "");
            }
            return _494;
        },
        _setName: function(_495) {
            this._setValueAttr(_495);
            if (this.namePattern == "can") {
                this.focusNode.value = _495;
            } else {
                if (this.namePattern == "com") {
                    this.focusNode.value = this.parseName(_495);
                } else {
                    if (this.namePattern == "noroot") {
                        this.focusNode.value = _495.lastIndexOf("/") === -1 ? _495 : _495.substr(0, _495.lastIndexOf("/"));
                    } else {
                        this.focusNode.value = _495;
                    }
                }
            }
            this.focusNode.title = _495;
        },
        setName: function(_496) {
            this.valueNode.value = _496;
            this._setName(_496);
        },
        _setValueAttr: function(_497) {
            this.inherited(arguments);
            this.value = this.valueNode.value = this.focusNode.title = _497;
        },
        _open: function() {
            if (this.disabled || !this.popupClass) {
                return;
            }
            var _498 = this;
            if (!this._dialog) {
                var _499 = dojo.getObject(this.popupClass, false);
                window.$$addressDialog = this._dialog = new _499({
                    title: "选择部门",
                    src: fnGetUrlRoot() + "indishare/addresstree.nsf/wSelSingleDep?OpenForm&absname=" + this.name + "&code=" + this.code,
                    onCancel: function() {
                        _498._dialog.hide();
                        _498._dialog.destroy();
                        delete _498._dialog;
                    },
                    ok: function() {
                        _498._setName(_498.valueNode.value);
                        _498.callback();
                        this.hide();
                        _498._dialog.destroy();
                        delete _498._dialog;
                    }
                });
            }
            this._dialog.show();
        }
    });
}
if (!dojo._hasResource["smartdot.form.SelectGroupTextBox"]) {
    dojo._hasResource["smartdot.form.SelectGroupTextBox"] = true;
    dojo.provide("smartdot.form.SelectGroupTextBox");
    dojo.declare("smartdot.form.SelectGroupTextBox", dijit.form.ComboBox, {
        popupClass: "smartdot.IframeDialog",
        _onClick: function() {
            if (document.forms[0].elements["Address"]) {
                document.forms[0].elements["Address"].value = this.name;
            }
            this._open();
        },
        callback: function() {},
        preamble: function(arg, node) {
            if (!!node) {
                arg.oriNode = node.cloneNode(true);
                dojo.removeAttr(arg.oriNode, "dojoType");
                if (!!dojo.attr(node, "callback")) {
                    this.callback = eval(dojo.attr(node, "callback"));
                }
            }
        },
        buildRendering: function() {
            this.inherited(arguments);
            this.valueNode = this.oriNode;
            dojo.place(this.valueNode, this.focusNode, "after");
            dojo.style(this.valueNode, {
                display: "none"
            });
            dojo.addClass(this.domNode, "smartdotTextBox");
            dojo.addClass(this.domNode, "smartdotGroupTextBox");
            this.focusNode.readOnly = true;
            dojo.removeAttr(this.focusNode, "name");
            dojo.connect(this._buttonNode, "onclick", this, this._onClick);
        },
        postCreate: function() {
            this.inherited(arguments);
            this._setName(this.valueNode.value);
            this.focusNode.id = this.focusNode.id + "_disp";
        },
        parseName: function(str) {
            str = str.replace(/;|\^/g, ",");
            var _49a = str.split(",");
            var _49b = "";
            for (var i = 0; i < _49a.length; i++) {
                _49b += (_49b == "" ? "" : ",") + _49a[i].split("/")[0].replace(/\d+$/g, "").replace(/(CN|OU|O|C)=/g, "");
            }
            return _49b;
        },
        _setName: function(_49c) {
            this._setValueAttr(_49c);
            this.focusNode.value = this.parseName(_49c);
            this.focusNode.title = _49c;
        },
        setName: function(_49d) {
            this.valueNode.value = _49d;
            this._setName(_49d);
        },
        _open: function() {
            if (this.disabled || !this.popupClass) {
                return;
            }
            var _49e = this;
            if (!this._dialog) {
                var _49f = dojo.getObject(this.popupClass, false);
                var _4a0 = this.basecode ? "basecode=" + this.basecode : "";
                var _4a1 = this.seldep ? "seldep=" + this.seldep : "";
                window.$$addressDialog = this._dialog = new _49f({
                    title: "选择群组",
                    src: fnGetUrlRoot() + "indishare/addresstree.nsf/wAddress?OpenForm&content=&mode=2" + _4a0 + _4a1,
                    onCancel: function() {
                        _49e._dialog.hide();
                        _49e._dialog.destroy();
                        delete _49e._dialog;
                    },
                    ok: function() {
                        _49e._setName(_49e.valueNode.value);
                        _49e.callback();
                        this.hide();
                        _49e._dialog.destroy();
                        delete _49e._dialog;
                    }
                });
            }
            this._dialog.show();
        }
    });
}
if (!dojo._hasResource["smartdot.form.SelectPersonTextarea"]) {
    dojo._hasResource["smartdot.form.SelectPersonTextarea"] = true;
    dojo.provide("smartdot.form.SelectPersonTextarea");
    dojo.declare("smartdot.form.SelectPersonTextarea", dijit.form.Textarea, {
        templateString: "<textarea ${nameAttrSetting} dojoAttachPoint='focusNode,containerNode,textbox' readOnly='true' style='resize:none;line-height:16px;' autocomplete='off'></textarea>",
        popupClass: "smartdot.IframeDialog",
        namePattern: "com",
        mode: "person",
        _onClick: function() {
            if (document.forms[0].elements["Address"]) {
                document.forms[0].elements["Address"].value = this.name;
            }
            this._open();
        },
        callback: function() {},
        preamble: function(arg, node) {
            if (!!node) {
                arg.oriNode = node.cloneNode(true);
                dojo.removeAttr(arg.oriNode, "dojoType");
                if (!!dojo.attr(node, "callback")) {
                    this.callback = eval(dojo.attr(node, "callback"));
                }
            }
        },
        postCreate: function() {
            this.inherited(arguments);
            this.curWidth = this.containerNode.style.width || "";
            this.curHeight = this.containerNode.style.height || "";
            this.wrapNode = dojo.create("div", {
                "class": "dijit dijitReset dijitTextareaWrap",
                style: {
                    width: this.curWidth,
                    height: this.curHeight,
                    position: "relative"
                }
            }, this.containerNode, "before");
            dojo.place(this.containerNode, this.wrapNode);
            this.valueNode = this.oriNode;
            dojo.place(this.valueNode, this.containerNode, "after");
            dojo.style(this.valueNode, {
                display: "none"
            });
            this.wrapNode.valueNode = this.valueNode;
            this.wrapNode.domNode = this.wrapNode;
            dojo.removeAttr(this.focusNode, "name");
            this.clickNode = dojo.create("button", {
                innerHTML: "p",
                type: "button",
                "class": "SelectPersonTextarea-button",
                onmousedown: function() {
                    dojo.addClass(this, "SelectPersonTextarea-button-active");
                },
                onmouseup: function() {
                    dojo.removeClass(this, "SelectPersonTextarea-button-active");
                }
            }, this.wrapNode, "last");
            this.focusNode.innerHTML = parseName(this.focusNode.innerHTML);
            dojo.connect(this.clickNode, "onclick", this, this._onClick);
            this.focusNode.id = this.focusNode.id + "_disp";
        },
        parseName: function(str) {
            str = str.replace(/;|\^/g, ",");
            var _4a2 = str.split(",");
            var _4a3 = "";
            for (var i = 0; i < _4a2.length; i++) {
                _4a3 += (_4a3 == "" ? "" : ",") + _4a2[i].split("/")[0].replace(/\d+$/g, "").replace(/(CN|OU|O|C)=/g, "");
            }
            return _4a3;
        },
        _setName: function(_4a4) {
            this._setValueAttr(_4a4);
            if (this.namePattern == "can") {
                this.focusNode.value = _4a4;
            } else {
                if (this.namePattern == "com") {
                    this.focusNode.value = this.parseName(_4a4);
                } else {
                    if (this.namePattern == "abb") {
                        this.focusNode.value = _4a4.replace(/(CN|OU|O|C)=/g, "");
                    } else {
                        this.focusNode.value = _4a4;
                    }
                }
            }
            this.focusNode.title = _4a4;
        },
        setName: function(_4a5) {
            this.valueNode.value = _4a5;
            this._setName(_4a5);
        },
        _open: function() {
            if (this.disabled || !this.popupClass) {
                return;
            }
            var _4a6 = this;
            if (!this._dialog) {
                var _4a7 = dojo.getObject(this.popupClass, false);
                var mode = this.mode.toLowerCase() === "person" ? "&mode=1" : "";
                var _4a8 = this.basecode ? "basecode=" + this.basecode : "";
                var _4a9 = this.seldep ? "seldep=" + this.seldep : "";
                window.$$addressDialog = this._dialog = new _4a7({
                    title: "选择人员",
                    src: fnGetUrlRoot() + "indishare/addresstree.nsf/wAddress?OpenForm&content=" + mode + _4a8 + _4a9,
                    onCancel: function() {
                        _4a6._dialog.hide();
                        _4a6._dialog.destroy();
                        delete _4a6._dialog;
                    },
                    ok: function() {
                        _4a6._setName(_4a6.valueNode.value);
                        _4a6.callback();
                        this.hide();
                        _4a6._dialog.destroy();
                        delete _4a6._dialog;
                    }
                });
            }
            this._dialog.show();
        }
    });
}
if (!dojo._hasResource["smartdot.form.SelectPersonTextBox"]) {
    dojo._hasResource["smartdot.form.SelectPersonTextBox"] = true;
    dojo.provide("smartdot.form.SelectPersonTextBox");
    dojo.declare("smartdot.form.SelectPersonTextBox", dijit.form.ComboBox, {
        popupClass: "smartdot.IframeDialog",
        selectType: "multiple",
        namePattern: "can",
        mode: "person",
        _onClick: function() {
            if (document.forms[0].elements["Address"]) {
                document.forms[0].elements["Address"].value = this.name;
            }
            this._open();
        },
        callback: function() {},
        preamble: function(arg, node) {
            if (!!node) {
                arg.oriNode = node.cloneNode(true);
                dojo.removeAttr(arg.oriNode, "dojoType");
                if (!!dojo.attr(node, "callback")) {
                    this.callback = eval(dojo.attr(node, "callback"));
                }
            }
        },
        buildRendering: function() {
            this.inherited(arguments);
            this.valueNode = this.oriNode;
            dojo.place(this.valueNode, this.focusNode, "after");
            dojo.style(this.valueNode, {
                display: "none"
            });
            dojo.addClass(this.domNode, "smartdotTextBox");
            dojo.addClass(this.domNode, "smartdotPersonTextBox");
            this.focusNode.readOnly = true;
            dojo.removeAttr(this.focusNode, "name");
            dojo.connect(this._buttonNode, "onclick", this, this._onClick);
        },
        postCreate: function() {
            this.inherited(arguments);
            this._setName(this.valueNode.value);
            this.focusNode.id = this.focusNode.id + "_disp";
        },
        parseName: function(str) {
            str = str.replace(/;|\^/g, ",");
            var _4aa = str.split(",");
            var _4ab = "";
            for (var i = 0; i < _4aa.length; i++) {
                _4ab += (_4ab == "" ? "" : ",") + _4aa[i].split("/")[0].replace(/\d+$/g, "").replace(/(CN|OU|O|C)=/g, "");
            }
            return _4ab;
        },
        _setName: function(_4ac) {
            this._setValueAttr(_4ac);
            if (this.namePattern == "can") {
                this.focusNode.value = this.parseName(_4ac);
            } else {
                if (this.namePattern == "com") {
                    this.valueNode.value = this.parseName(_4ac);
                    this.focusNode.value = this.parseName(_4ac);
                } else {
                    if (this.namePattern == "abb") {
                        this.focusNode.value = _4ac.replace(/(CN|OU|O|C)=/g, "");
                    } else {
                        this.focusNode.value = _4ac;
                    }
                }
            }
            this.focusNode.title = _4ac;
        },
        setName: function(_4ad) {
            this.valueNode.value = _4ad;
            this._setName(_4ad);
        },
        _open: function() {
            if (this.disabled || !this.popupClass) {
                return;
            }
            var _4ae = this;
            if (!this._dialog) {
                var _4af = dojo.getObject(this.popupClass, false);
                var mode = this.mode.toLowerCase() === "person" ? "&mode=1" : "";
                var _4b0 = this.basecode ? "basecode=" + this.basecode : "";
                var _4b1 = this.seldep ? "seldep=" + this.seldep : "";
                var _4b2 = fnGetUrlRoot() + "indishare/addresstree.nsf/wAddressSingle?OpenForm&content=" + mode + _4b0 + _4b1;
                var _4b3 = fnGetUrlRoot() + "indishare/addresstree.nsf/wAddress?OpenForm&content=" + mode + _4b0 + _4b1;
                var s = this.selectType.toLowerCase() == "single" ? _4b2 : _4b3;
                window.$$addressDialog = this._dialog = new _4af({
                    title: "选择人员",
                    src: s,
                    onCancel: function() {
                        _4ae._dialog.hide();
                        _4ae._dialog.destroy();
                        delete _4ae._dialog;
                    },
                    ok: function() {
                        _4ae._setName(_4ae.valueNode.value);
                        _4ae.callback();
                        _4ae._dialog.hide();
                        _4ae._dialog.destroy();
                        delete _4ae._dialog;
                    }
                });
            }
            this._dialog.show();
        }
    });
}
if (!dojo._hasResource["smartdot.form-all"]) {
    dojo._hasResource["smartdot.form-all"] = true;
    dojo.provide("smartdot.form-all");
}
dojo.registerModulePath("smartdot.service", "/indishare/rpc.nsf");
function fnOnload() {
    dojo.parser.parse(dojo.body());
}
;function fnDojoOnload() {
    if (window.fnInitFloatLayer) {
        window.fnInitFloatLayer();
    }
}
;dojo.addOnLoad(fnOnload);
dojo.addOnLoad(fnDojoOnload);
if (!dojo._hasResource["smartdot.mobile.uacss"]) {
    dojo._hasResource["smartdot.mobile.uacss"] = true;
    dojo.provide("smartdot.mobile.uacss");
    (function() {
        var dua = navigator.userAgent;
        var _4b4 = dua.indexOf("iPad") >= 0;
        var _4b5 = dua.indexOf("iPhone") >= 0;
        var _4b6 = dua.indexOf("iPod") >= 0;
        var _4b7 = dua.indexOf("Android") >= 0;
        dojo.isiPad = _4b4;
        dojo.isMobile = false;
        if (dojo.isMobile) {
            var html = dojo.doc.documentElement;
            html.className = html.className + " dj_mobile";
        }
        dojo.addOnLoad(function() {
            if (dojo.isiPad) {
                dojo.place("<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no\" />", dojo.query("head")[0]);
            }
        });
    })();
}
if (!dojo._hasResource["smartdot.mobile.TimeTextBoxPatch"]) {
    dojo._hasResource["smartdot.mobile.TimeTextBoxPatch"] = true;
    dojo.provide("smartdot.mobile.TimeTextBoxPatch");
    (function() {
        if (dojo.isMobile) {
            var oldF = smartdot.form.TimeTextBox.prototype.buildRendering;
            dojo.extend(smartdot.form.TimeTextBox, {
                openOnClick: false,
                buildRendering: function() {
                    oldF.apply(this, arguments);
                    this.textbox.type = "time";
                    dojo.style(this._popupStateNode, {
                        display: "none"
                    });
                }
            });
        }
    })();
}
if (!dojo._hasResource["smartdot.mobile.DateTextBoxPatch"]) {
    dojo._hasResource["smartdot.mobile.DateTextBoxPatch"] = true;
    dojo.provide("smartdot.mobile.DateTextBoxPatch");
    (function() {
        if (dojo.isMobile) {
            var oldF = smartdot.form.DateTextBox.prototype.buildRendering;
            dojo.extend(smartdot.form.DateTextBox, {
                openOnClick: false,
                buildRendering: function() {
                    oldF.apply(this, arguments);
                    this.textbox.type = "date";
                    this.constraints.datePattern = "yyyy-MM-dd";
                    dojo.style(this._popupStateNode, {
                        display: "none"
                    });
                }
            });
        }
    })();
}
if (!dojo._hasResource["smartdot.mobile.gate"]) {
    dojo._hasResource["smartdot.mobile.gate"] = true;
    dojo.provide("smartdot.mobile.gate");
    (function() {
        if (dojo.isMobile) {
            var html = dojo.doc.documentElement;
            html.className = html.className + " dj_closed_gate";
            dojo = {};
        }
    })();
}
dojo.i18n._preloadLocalizations("smartdot.nls.dojo_smartdot", ["ROOT", "en", "en-us", "xx", "zh", "zh-cn"]);
